1、Linux文件操作函数linux read/writefread/fwrite 1,fread,read.2,fopenc,openPOSIX.3,fread.readlinux/unix.4,fopen.open.5,fopen,open().6,linux/unix,open,read.8kread/write2k4fread/fwriteread/write4fread/fwrite1read/write4read/writefread fwrite,read write,writebufbuffwrite(?)write(fwritewrite)openreadwritefcntlcl
2、oselinkstatumaskunlinkfopen#include#include#includeint open( const char * pathname, int flags);int open( const char * pathname, int flags, mode_t mode);pathname flags :O_RDONLY O_WRONLY O_RDWR OR(|)O_CREAT O_EXCL O_CREAT O_CREATO_EXCLO_NOCTTY O_TRUNC 0O_APPEND O_NONBLOCK O_NDELAY O_NONBLOCKO_SYNC O_
3、NOFOLLOW pathname O_DIRECTORY pathname Linux2.2mode umaskmode-umaksS_IRWXU00700 S_IRUSR S_IREAD00400S_IWUSR S_IWRITE00200 S_IXUSR S_IEXEC00100 S_IRWXG 00070S_IRGRP 00040 S_IWGRP 00020S_IXGRP 00010 S_IRWXO 00007S_IROTH 00004 S_IWOTH 00002S_IXOTH 00001 0 -1EEXIST pathname O_CREATO_EXCLEACCESS pathname
4、EROFS EFAULT pathnameEINVAL mode ENAMETOOLONG pathnameENOTDIR pathnameENOMEM ELOOP pathnameEIO I/O access()access()open() #include#include#include#includemain()int fd,size;char s =”Linux Programmer!n”,buffer80;fd=open(“/tmp/temp”,O_WRONLY|O_CREAT);write(fd,s,sizeof(s);close(fd);fd=open(“/tmp/temp”,O
5、_RDONLY);size=read(fd,buffer,sizeof(buffer);close(fd);printf(“%s”,buffer); Linux Programmer!read readdirwritefcntlcloselseekreadlinkfread #include ssize_t read(int fd, void * buf ,size_t count); read()fd countbufcount0read()0 0 read()count (pipe)read()-1errno EINTR EAGAIN I/O O_NONBLOCKEBADF fd open
6、write openreadfcntlcloselseeksyncfsyncfwrite #include ssize_t write (int fd,const void * buf,size_t count); write()bufcountfd write()-1errno EINTR EAGAIN I/O O_NONBLOCKEADF fd opensync fsync #include int sync(void) sync() 0fopenopenfclose#includeFILE * fopen(const char * path,const char * mode);pathmodemode:r r+ w 0w+ a a+ brbw+babb POSIXLinuxfopen() S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)umask NULLerrno fopen()
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1