linux 下获取系统函数的方法

linux 下获取系统函数的方法

 

  1 C获取系统时间的方法(linux)
  2 Reference: http: // net.pku.edu.cn/~yhf/linux_c/function/04.html
  3
  4 asctime(将时间和日期以字符串格式表示) 
  5 相关函数 
  6
  7 time,ctime,gmtime,localtime
  8  
  9 表头文件 
 10
 11 #include < time.h >
 12  
 13 定义函数 
 14
 15 char   *  asctime( const   struct  tm  *  timeptr);
 16  
 17 函数说明 
 18
 19 asctime()将参数timeptr所指的tm结构中的信息转
 20
 21 换成真实世界所使用的时间日期表示方法,然后将结果以字
 22
 23 符串形态返回。此函数已经由时区转换成当地时间,字符串
 24
 25 格式为:
 26
 27 “Wed Jun  30   21 : 49 : 08   1993 \n”
 28  
 29 返回值  
 30
 31 返回一字符串表示目前当地的时间日期。
 32
 33  
 34 附加说明 
 35
 36 若再调用相关的时间日期函数,此字符串可能会被破坏。此函数与ctime不同处在于传入的参数是不同的结构。
 37
 38 范例 
 39
 40 #include  < time.h >
 41 main()
 42 {
 43time_t timep;
 44time (&timep);
 45printf(“%s”,asctime(gmtime(&timep)));
 46}

 47  
 48 执行  Sat Oct  28   02 : 10 : 06   2000
 49  
 50  
 51
 52  
 53 ctime(将时间和日期以字符串格式表示) 
 54 相关函数 
 55
 56 time,asctime,gmtime,localtime
 57  
 58 表头文件 
 59
 60 #include < time.h >
 61  
 62 定义函数 
 63
 64 char   * ctime( const  time_t  * timep);
 65  
 66 函数说明 
 67
 68 ctime()将参数timep所指的time_t结构中的信息转
 69
 70 换成真实世界所使用的时间日期表示方法,然后将结果以字
 71
 72 符串形态返回。此函数已经由时区转换成当地时间,字符串
 73
 74 格式为“Wed Jun  30   21  : 49  : 08   1993 \n”。若再调用相关的
 75
 76 时间日期函数,此字符串可能会被破坏。
 77  
 78 返回值 
 79
 80 返回一字符串表示目前当地的时间日期。
 81  
 82 范例
 83
 84 #include < time.h >
 85 main()
 86 {
 87time_t timep;
 88time (&timep);
 89printf(“%s”,ctime(&timep));
 90}

 91  
 92 执行  Sat Oct  28   10  :  12  :  05   2000
 93  
 94  
 95
 96  
 97 gettimeofday(取得目前的时间) 
 98 相关函数 
 99
100 time,ctime,ftime,settimeofday
101  
102 表头文件 
103
104 #include  < sys / time.h >
105 #include  < unistd.h >
106  
107 定义函数 
108
109 int  gettimeofday (  struct  tim  *  tv ,  struct   timezone  *  tz )
110  
111 函数说明 
112
113 gettimeofday()会把目前的时间有tv所指的结构返回,当地时区的信息则放到tz所指的结构中。
114 tim结构定义为:
115 struct  tim {
116long tv_sec;
117long tv_usec;
118}
;
119 timezone 结构定义为:
120 struct  timezone {
121int tz_minuteswest;
122int tz_dsttime;
123}
;
124 上述两个结构都定义在 / usr / include / sys / time.h。tz_dsttime
125
126 所代表的状态如下
127 DST_NONE
128 DST_USA
129 DST_AUST
130 DST_WET
131 DST_MET
132 DST_EET
133 DST_CAN
134 DST_GB
135 DST_RUM
136 DST_TUR
137 DST_AUSTALT
138  
139 返回值 
140
141 成功则返回0,失败返回- 1 ,错误代码存于errno。
142
143 附加说明EFAULT指针tv和tz所指的内存空间超出存取权限
144
145
146  
147 范例 
148
149 #include < sys / time.h >
150 #include < unistd.h >
151 main() {
152struct tim tv;
153struct timezone tz;
154gettimeofday (&tv , &tz);
155printf(“tv_sec; %d\n”, tv,.tv_sec) ;
156printf(“tv_usec; %d\n”,tv.tv_usec);
157printf(“tz_minuteswest; %d\n”, tz.tz_minuteswest);
158printf(“tz_dsttime, %d\n”,tz.tz_dsttime);
159}

160  
161 执行  tv_sec:  974857339
162 tv_usec: 136996
163 tz_minuteswest: - 540
164 tz_dsttime: 0
165  
166  
167
168  
169 gmtime(取得目前时间和日期) 
170 相关函数 
171
172 time,asctime,ctime,localtime
173  
174 表头文件 
175
176 #include < time.h >
177  
178 定义函数 
179
180 struct  tm * gmtime( const  time_t * timep);
181  
182 函数说明 
183
184 gmtime()将参数timep 所指的time_t 结构中的信息
185
186 转换成真实世界所使用的时间日期表示方法,然后将结果由
187
188 结构tm返回。
189 结构tm的定义为
190 struct  tm
191 {
192int tm_sec;
193int tm_min;
194int tm_hour;
195int tm_mday;
196int tm_mon;
197int tm_year;
198int tm_wday;
199int tm_yday;
200int tm_isdst;
201}
;
202 int  tm_sec 代表目前秒数,正常范围为0 - 59 ,但允许至61秒
203 int  tm_min 代表目前分数,范围0 - 59
204 int  tm_hour 从午夜算起的时数,范围为0 - 23
205 int  tm_mday 目前月份的日数,范围01 - 31
206 int  tm_mon 代表目前月份,从一月算起,范围从0 - 11
207 int  tm_year 从1900 年算起至今的年数
208 int  tm_wday 一星期的日数,从星期一算起,范围为0 - 6
209 int  tm_yday 从今年1月1日算起至今的天数,范围为0 - 365
210 int  tm_isdst 日光节约时间的旗标
211 此函数返回的时间日期未经时区转换,而是UTC时间。
212  
213 返回值  返回结构tm代表目前UTC 时间
214  
215 范例 
216
217 #include  < time.h >
218 main() {
219char *wday[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
220time_t timep;
221struct tm *p;
222time(&timep);
223p=gmtime(&timep);
224printf(“%d%d%d”,(1900+p->tm_year), (1+p->tm_mon),p-
225
226来源:(http://blog.sina.com.cn/s/blog_4d9acd450100gff1.html) - C获取系统时间的方法(linux)_kuyouqi_新浪博客 
227>tm_mday);
228printf(“%s%d;%d;%d\n”, wday[p->tm_wday], p->tm_hour, p
229
230->tm_min, p->tm_sec);
231}

232  
233 执行   2000 / 10 / 28  Sat  8 : 15 : 38
234  
235  
236
237  
238 localtime(取得当地目前时间和日期) 
239 相关函数 
240
241 time, asctime, ctime, gmtime
242  
243 表头文件 
244
245 #include < time.h >
246  
247 定义函数 
248
249 struct  tm  * localtime( const  time_t  *  timep);
250  
251 函数说明 
252
253 localtime()将参数timep所指的time_t结构中的信
254
255 息转换成真实世界所使用的时间日期表示方法,然后将结果
256
257 由结构tm返回。结构tm的定义请参考gmtime()。此函数返回
258
259 的时间日期已经转换成当地时区。
260  
261 返回值
262
263  返回结构tm代表目前的当地时间。
264  
265 范例 
266
267 #include < time.h >
268 main() {
269char *wday[]={“Sun”,”Mon”,”Tue”,”Wed”,”Thu”,”Fri”,”Sat”};
270time_t timep;
271struct tm *p;
272time(&timep);
273p=localtime(&timep);
274printf (“%d%d%d ”, (1900+p->tm_year),( l+p->tm_mon), p-
275
276>tm_mday);
277printf(“%s%d:%d:%d\n”, wday[p->tm_wday],p->tm_hour, p
278
279->tm_min, p->tm_sec);
280}

281  
282 执行   2000 / 10 / 28  Sat  11 : 12 : 22
283  
284  
285
286  
287 mktime(将时间结构数据转换成经过的秒数) 
288 相关函数 
289
290 time,asctime,gmtime,localtime
291  
292 表头文件 
293
294 #include < time.h >
295  
296 定义函数 
297
298 time_t mktime(strcut tm  *  timeptr);
299  
300 函数说明 
301
302 mktime()用来将参数timeptr所指的tm结构数据转
303
304 换成从公元1970年1月1日0时0分0 秒算起至今的UTC时间
305
306 所经过的秒数。
307  
308 返回值 
309
310 返回经过的秒数。
311  
312 范例 
313
314
315 #include < time.h >
316 main()
317 {
318time_t timep;
319strcut tm *p;
320time(&timep);
321printf(“time() : %d \n”,timep);
322p=localtime(&timep);
323timep = mktime(p);
324printf(“time()->localtime()->mktime():%d\n”,timep);
325}

326  
327 执行  time(): 974943297
328 time() -> localtime() -> mktime(): 974943297
329  
330  
331
332  
333 settimeofday(设置目前时间) 
334 相关函数 
335
336 time,ctime,ftime,gettimeofday
337  
338 表头文件 
339
340 #include < sys / time.h >
341 #include < unistd.h >
342  
343 定义函数 
344
345 int  settimeofday (  const   struct  tim  * tv, const
346
347 struct  timezone  * tz);
348  
349 函数说明 
350
351 settimeofday()会把目前时间设成由tv所指的结构
352
353 信息,当地时区信息则设成tz所指的结构。详细的说明请参
354
355 考gettimeofday()。注意,只有root权限才能使用此函数修改
356
357 时间。
358  
359 返回值 
360
361 成功则返回0,失败返回- 1 ,错误代码存于errno。
362  
363 错误代码  EPERM 并非由root权限调用settimeofday(),
364
365 权限不够。
366 EINVAL 时区或某个数据是不正确的,无法正确设置时间。
367  
368  
369
370  
371 time(取得目前的时间) 
372 相关函数
373
374 ctime,ftime,gettimeofday
375  
376 表头文件 
377
378 #include < time.h >
379  
380 定义函数 
381
382 time_t time(time_t  * t);
383  
384 函数说明 
385
386 此函数会返回从公元1970年1月1日的UTC时间从
387
388 0时0分0秒算起到现在所经过的秒数。如果t 并非空指针的
389
390 话,此函数也会将返回值存到t指针所指的内存。
391  
392 返回值 
393
394 成功则返回秒数,失败则返回((time_t) - 1 )值,错误
395
396 原因存于errno中。
397  
398 范例 
399
400 #include < time.h >
401 main()
402 {
403int seconds= time((time_t*)NULL);
404printf(“%d\n”,seconds);
405}

406  
407 执行   9.73E+08
408
409  
410
411 本文来自CSDN博客,转载请标明出处:http: // blog.csdn.net/haoyuewuwei/archive/2009/08/18/4460914.aspx
412

你可能感兴趣的:(linux 下获取系统函数的方法)