Linux的文件操作有两种方式:①Linux系统调用方式,这种方式依赖于Linux系统②C语言的文件操作,采用C语言的库函数实现。以下是Linux系统调用方式:1. 创建文件int
creat(const char *filename, mode_t mode)filename:要创建的文件名,包含路径,缺省时为当前路径;mode:创建模式常见创建模式:S_IRUSR 可读 4(直接用数字来表示文件的访问权限)S_IWUSR 可写 2S_IXUSR 可执行 1S_IRWXU 可读、写、执行 7 实例如下:#include <stdio.h>#include <stdlib.h> #include <sys/types.h>#include <sys/stat.h> #include <fcntl.h> void create_file(char *filename){ if(creat(filename,0755)<0){ //指定创建的文件具有地属性 printf("create file %s failure!
",filename); exit(EXIT_FAILURE); }else{ printf("create file %s success!
",filename); }} int main(int argc,char *argv[]){ int i; if(argc<2){ perror("you haven"t input the filename,please try again!
"); exit(EXIT_FAILURE); } for(i=1;i<argc;i++){ //可以创建多个文件 create_file(argv[i]); } exit(EXIT_SUCCESS);}注意:代码中的系统头文件都在/usr/include目录下,这个目录是gcc定义的系统目录 访问权限每一个文件或是目录的访问权限都有三组,每组用三位表示,分别为文件所有者的读、写和执行权限;与所有者同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。当用ls -l 命令显示文件或目录的详细信息时,最左边的一列为文件的访问权限。例如:$ ls –l sobcrc.tgz-rw-r--r-- 1 root root 483997 Jul 15 17:31 sobcrc.tgz注意这里共有10个位置。第一个字符指定了文件类型,如果第一个字符是横线,表示是一个非目录的普通文件,如果是d,表示是一个目录。r代表只读,w代表写,x代表可执行,横线代表无该项权限。 2. 打开文件和关闭文件文件描述在Linux系统中,所有
打开的文件都对应一个文件描述符。文件描述符的本质是一个非负整数。当打开一个文件时,该整数由系统来分配。文件描述符的范围是0~OPEN_MAX。int
open(const char *pathname, int flags)int
open(const char*pathname, int flags, mode_t mode)pathname:为要打开文件的路径名,缺省值为当前路径flags:当前标志有:O_RDONLY(只读方式打开), O_WRONLY(这写方式打开), O_RDWR(读写方式打开), O_APPEND(追加方式打开), O_CREAT(创建一个文件), O_NOBLOCK(非阻塞方式打开)注意:只有使用O_CREAT标志时,才使用int open(const char*pathname, int flags, mode_t mode)这时,mode指定创建文件的权限。int
close(int fd) 用于关闭打开的文件,其中fd是已经打开的文件描述符。 例子如下:#include <stdio.h>#include <stdlib.h> #include <sys/types.h>#include <sys/stat.h>#include <fcntl.h> int main(int argc ,char *argv[]){ int fd; if(argc<2){ puts("please input the open file pathname!
"); exit(1); } //如果flag参数里有O_CREAT表示,该文件如果不存在,系统则会创建该文件,该文件的权限由第三个参数决定,此处为0755 //如果flah参数里没有O_CREAT参数,则第三个参数不起作用.此时,如果要打开的文件不存在,则会报错. //所以fd=open(argv[1],O_RDWR),仅仅只是打开指定文件 if((fd=open(argv[1],O_CREAT|O_RDWR,0755))<0){ perror("open file failure!
"); exit(1); }else{ printf("open file %d success!
",fd); } close(fd); exit(0);}
技术备忘录(Linux Mono Linq ASP.NET)三歩让 LibreOffice Writer 拥有精简外观相关资讯 Linux教程
- Linux教程:如何在命令行中查看目 (07/28/2014 12:22:23)
- Linux 修改root密码 (11/03/2012 07:53:38)
- su - root 与su root的区别 (06/06/2012 00:39:40)
| - Linux进程间通信:消息队列 (01/28/2013 09:43:00)
- U盘安装Linux开机无法启动解决方法 (10/07/2012 08:55:52)
- Windows 7/Linux 同步时间 (05/15/2012 06:17:55)
|
本文评论 查看全部评论 (0)