Linux系统编程初探系列之一:文件编程

系统函数 int creat(const char* filename,mode_t mode)

filename:需要创建的文件名(包含路径,缺省为当前路径)

mode:创建模式

常见的创建模式有:S_IRUSR------可读

         S_IWUSR-----可写

         S_IXUSR-----可执行

         S_IRWXU-----可读、可写、可执行

除了用上述宏 还可以用数字来表示文件的访问权限

          1------->可执行

          2------->可写

          4------->可读

          6------->可读可写

          7------->可读可写可执行

          0------->无任何权限

 1 #include <stdio.h> 
 2 #include <stdlib.h>
 3 #include <sys/types.h> 
 4 #include <sys/stat.h> 
 5 #include <fcntl.h> 
 6 
 7 void  create_file(char *filename)
 8 { 
 9     /*创建的文件具有可读可写的属性*/    
10     if(creat(filename,0666)<0)
11     { 
12         printf("create file %s failure!\n",filename); 
13         exit(EXIT_FAILURE); 
14     }
15     else
16     { 
17         printf("create file %s success!\n",filename); 
18     } 
19 } 
20 
21 int main(int argc,char *argv[])
22 { 
23     /*判断入参有没有传入文件名 */
24     if(argc<2)
25     { 
26         printf("you haven't input the filename,please try again!\n"); 
27         exit(EXIT_FAILURE); 
28     } 
29     for(i=1;i<argc;i++)
30     {
31         create_file(argv[1]); 
32     }
33     exit(EXIT_SUCCESS); 
34 }            

程序点评:

1.creat(filename,0666) -------666的权限分别对应于文件所有者,文件所有者所在组,其他用户

2.int main(int argc,char*argv[])----------------在执行程序的时候,argc是输入参数个数,argv[]是保存着文件名(本质是字符串地址)

  所以在执行程序时,在命令端输入   ./file_creat test  才能创建文件

  argc 命令行的总的参数个数(即使 运行程序./file_creat 后面没有文件,个数也是1)

  记录了用户在运行程序的命令行中输入的参数的个数

  argv[]存储argc个指针变量的数组

  其中第0个元素是程序名,后面的元素是用户输入的参数

 

  

posted @ 2017-01-11 17:44  ITyuan  阅读(281)  评论(0编辑  收藏  举报