1、嵌入式linux

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这个文件时候是会创建一个的;
如果有了的话:
就显示打开;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值