linux
你好!
2、应用程序设计
系统调用方式访问文件:
1.创建文件:
使用的是:creat的系统调用方式。
创建一个file_creat.c的文件,代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
void create_file(char *filename){
/*创建文件具有的属性:755,第一个数字为文件所有者的权限,第二个表示所有者所在的组的权限,第三个表示其他用户具有的权限*/
if(creat(filename,0755)<0){
printf("create file %s failure!\n",filename);
exit(EXIT_FAILURE);
}else{
printf("create file %s success!\n",filename);
}
}
int main(int argc,char *argv[]){
int i;
if(argc<2){
/*如果参数小于2个,表示只输入了creat的指令,而创建文件的名字参数没有,故而报错*/
perror("you haven't input the filename,please try again!\n");
exit(EXIT_FAILURE);
}
for(i=1;i<argc;i++){
/*数组从0开始,此处1表示是第二个参数,就是我们创建的文件名字,通过调用create创建*/
create_file(argv[i]);
}
exit(EXIT_SUCCESS);
}
编译:
art@art:~/Desktop/gcc/3.file$ ls
file_creat.c
art@art:~/Desktop/gcc/3.file$ gcc file_creat.c -o file_creat
art@art:~/Desktop/gcc/3.file$ ./file_creat hello
create file hello success!
art@art:~/Desktop/gcc/3.file$ vim hello
art@art:~/Desktop/gcc/3.file$ ls
file_creat file_creat.c hello
art@art:~/Desktop/gcc/3.file$
2.文件描述:
文件描述符:
3.系统调用—打开
使用open:实现文件打开。
创建一个file_open.c的文件,代码如下:
#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!\n");
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!\n");
exit(1);
}else{
printf("open file %d success!\n",fd);
}
close(fd);
exit(0);
}
没有hello这个文件时候是会创建一个的;
如果有了的话:
就显示打开;