底层文件访问

当开始运行程序时,他一般会有已经打开的文件描述符:0--标准输入;1--标准输出;2--标准错误。
write系统调用:
  
   #include<unistd.h>
   size_t write(int fildes,const void * buf,size_t nbytes);
   

read系统调用:
  
   #include <unistd.h>
   size_t read(int fildes,void *buf,size_t nbytes);
   

open系统调用:
  
   #include <fcntl.h>
   #include <sys/types.h>
   #include <sys/stat.h>
   int open(const char * path,int oflags);
   int open(const char * path,int oflags,mode_t mode);
   

   open建立了一条到文件或设备的访问路径(提供一个文件描述符供操作)。如果操作成功,返回一个文件描述符,read和write等系统调用就可以使用文件描述符就可以对打开的文件进行操作。这个文件描述符是唯一的,它不会与任何其他运行中的进程共享。如果两个程序同时打开同一个文件,会得到两个不同的文件描述符,它们之间没有关系,如果它们都对文件做写操作,那么会相互覆盖,各写各的。
close系统调用:
  
   #include <unistd.h>
   int close(int fildes);
   

   注意,有时检查close调用的返回结果是十分重要的,有的文件系统,特别是网络文件系统,可能不会在关闭之前报告文件写操作中出现的错误,因为执行写操作时,数据可能未被确认写入。

猜你喜欢

转载自codepeak.iteye.com/blog/764372