关于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)
暂时就记住这么多