摘要: 1、时间类型。Linux下常用的时间类型:time_t,struct timeval,struct tm(1)time_t是一个长整型,一般用来表示用1970年以来的秒数。(2)Struct timeval有两个成员,一个是秒,一个是微妙。struct timeval { long tv_sec; long tv_usec; };(3)struct tm是直观意义上的时间表示方法:struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_. 阅读全文
posted @ 2011-10-20 22:57 only_eVonne 阅读(1899) 评论(0) 推荐(0) 编辑
摘要: popen函数的实现包括一下几步:1、使用pipe()建立管道2、使用fork()创建子进程3、在子进程中调用exec族函数执行命令,通过管道将结果传送至父进程4、在主进程中等待子进程执行,子进程执行完成后将接收其结果,返回结果的文件指针类似与system(fork与exec函数的组合),popen在启动另外一个线程时,该线程有可能启动失败或者popen执行shell时失败了,但这个时候popen本身不会报错,直接就造成调用popen的父进程卡住了。可以通过验证errno来避免。下面是popen()在linux中的实现:/**popen.cWrittenbyW.RichardStevens*/ 阅读全文
posted @ 2011-10-20 21:26 only_eVonne 阅读(9765) 评论(3) 推荐(1) 编辑
摘要: linux文件IO操作可以分为两种:1.带缓存的文件IO操作,包括fopen, fclose, fread, fwrite, fgetc, fgets, fputc, fputs, freopen, fseek, ftell, rewind等2.不带缓存的文件IO操作,包括open, close, read, write, getc, getchar, putc, putchar 等两者的区别:1.带缓存的io操作是在标准C里面定义的(可移植),而不带缓存的io操作是POSIX中定义的(不可移植),属于系统调用。带缓存的实际上是在不带缓存的基础之上封装了一层,维护了一个输入输出缓冲区,使之能跨 阅读全文
posted @ 2011-10-20 20:51 only_eVonne 阅读(1181) 评论(0) 推荐(0) 编辑