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个元素是程序名,后面的元素是用户输入的参数