linux文件编程

    xiaoxiao2024-09-28  81

    int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode); open函数打开或者创建文件,返回文件描述符 flags为打开文件的方式, O_RDONLY, O_WRONLY, or O_RDWR。

    eg2: 创建文件,读写模式

    #include <stdio.h> #include <unistd.h> #include <fcntl.h> int main(int argc,char *argv[]) { int fd; fd = open(argv[1],O_CREAT|O_RDWR,0777); if (fd < 0) { printf("create file %s failure\n",argv[1] ); return -1; } else { printf("create file %s success,fd is %d\n",argv[1],fd ); } return 0; }

    运行:creae abc

    [fwc@localhost ~]$ ls -l abc -rwxrwxr-x 1 fwc fwc 0 May 26 04:19 abc [fwc@localhost ~]$ umask 0002

    mode &=(~umask)

    eg2:读写文件

    #include <stdio.h> #include <unistd.h> #include <fcntl.h> int main(int argc,char *argv[]) { int fd; int ret_wr; int ret_rd; char buf[] = "hello,world"; char read_buf[128] = {0}; fd = open("a.c",O_TRUNC|O_RDWR); if (fd < 0) { printf("open file failure\n" ); return -1; } else { printf("open file success,fd is %d\n", fd ); } ret_wr = write(fd,buf,sizeof(buf)); printf("write %d chars\n",ret_wr ); lseek(fd,0,SEEK_SET);//调整指针位置 ret_rd = read(fd,read_buf,128); printf("%s\n",read_buf ); return 0; }
    最新回复(0)