关于linux编程的几点总结

1、long ftell(FILE *stream)函数,一般用来得到文件大小,比如你可以这样用

    fseek(fp, 0, SEEK_END); //跳到文件结尾

    size = ftell(fp)+1;

    先跳到文件流结尾,然后得到文件流当前位置 偏移文件首的位置是多少

 

2、linux里面的限制,比如路径名最大能有多少个字符串,测试一些linux下面的极限值(其他系统不同,比如BSD,)

  long sysconf(int name);

  long pathconf(const char *pathname,int name);

  long fpathconf(int filedes,int name);

  这中间的name都是要测试的极限值,均为宏定义,在unistd.h中;用sysconf测试的一般以_SC_开头,下面两个测试一般以_PC_开头

 

3、缓冲区

  内核的文件IO读写缓冲

    当内核要写数据到文件时,通常先将此数据写入缓冲区

    一般只有一个高速缓冲区,只有当此缓冲区写满或者要存放其他数据的时候,内核将此缓冲区的数据排入输出队列,叫延迟写

    一般可以调用以下几个函数,进行更新数据到文件:

       int fsync(int filedes);

       int fdatasync(int filedes);

       int sync(void);

  标准文件IO的读写缓冲

    全缓冲(通常将缓冲区写满,调用fflush) ,行缓冲(遇到换行符\n) ,不缓冲(stderr)

 

4、还有其他几个函数

  1、char *getcwd(char *buf,size_t size)

  暂时就记住这么多

posted @ 2013-04-25 16:20  stephen@liu  阅读(134)  评论(0)    收藏  举报