文件操作
| 基本上所有的系统调用成功时返回0或正数,失败时返回负值。 文件的创建与删除 create系统调用的格式 #include <fcntl.h> int creat(path,mode) const char *path; /*文件路径名*/ int mode; /*文件存取权*/ 参数与功能说明: 该调用创建名为path的文件。如果path已存在,则创建文件的进程对文目录应有执行权限, 并且对该文件有写权限。执行成功时,原先path文件的内容被清除,其长度被设置为0,原先文件的 mode,uid,gid被保留,而新指定的mode不起作用。成功时返回文件描述符。 remove系统调用的格式 #include <stdio.h> int remove(path) const char *path; /*文件路径名*/ unlink系统调用的格式 #include <stdio.h> int unlink(path) const char *path; /*文件路径名*/ 参数与功能说明: 一个文件可以有若干个路径名,unlink的作用是删除某个文件的一个名为path 的路径名,并将文件i接点的连接计数减一。当计数为0时,若仍有进程在打开文件,文件不能立即被删除。 文件的打开与关闭 open系统调用的格式 #include <fcntl.h> int open(path,oflag[,mode]) const char *path; /*文件路径名*/ int oflag,mode; /*打开方式和存取标志*/ 参数与功能说明: 按给定的oflag打开path所指定的文件,可选参数mode一般在创建新文件时使用,其意义与creat调用中的mode一样。Oflag可取值为 O_RDONLY,O_WRONLY,O_RDWR,O_NDEALY,O_CREAT,O_TRUNC,O_EXCL,O_APPEND,O_SYNC,成功时返回文件描述符。 close系统调用的格式 #include <unistd.h> int close(fd) int fd; /*文件描述符*/ 参数与功能说明: 释放指定的文件文件描述符fd,fd意义是用creat.open,dup,fcntl.pipe调用得到的一个文件描述符。 文件的读写操作 read系统调用的格式 #include <unistd.h> int read(fd,buf,nbytes) int fd; /*文件描述符*/ char *buf; /*缓冲区地址*/ unsigned nbytes /*要读的字节数*/ 参数与功能说明: 执行成功返回读入的字节数。 write系统调用的格式 #include < unistd.h> int write(fd,buf,nbytes) int fd; /*文件描述符*/ char *buf; /*缓冲区地址*/ unsigned nbytes /*要读的字节数*/ 参数与功能说明: 执行成功返回写入的字节数。 文件的随机存取 lseek系统调用的格式 #include < unistd.h> long lseek(fd,offset,inter) int fd; /*文件描述符*/ int offset; /*文件偏移量*/ int inter; /*对文件偏移量的解释*/ 参数与功能说明: 调整文件的读写指针,调整方式有inter给出。Inter可选用的值为SEEK_SET,SEEK_CUT,SEEK_END 文件控制 fcntl系统调用的格式 #include < fcntl.h> int fcntl (fd,offset,inter) int fd; /*文件描述符*/ int cmd; /*命令*/ int arg; /*参数*/ 参数与功能说明: 对打开的文件进行控制。Arg根据不同的cmd取不同的值。可取为F_DUPFD,F_GETFD,F_GETFL,F_SETFL;;F_GETLK,F_SETLK,F_SETLKW。 flock结构如下: struct flock { short l_type; short l_whence; long l_start; long l_len; short l_pid; } |
Tags:文件,操作

