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
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