[Linux C编程]文件操作

本文详细介绍了Linux系统调用和C语言编程中关于文件操作的内容,包括系统调用如creat、open、read、write、lseek,以及C标准库函数fopen、fputc、fgetc、fputs、fgets等的使用。文章阐述了系统调用与API的关系,文件描述符的概念,并探讨了各种文件打开模式及其应用场景。
摘要由CSDN通过智能技术生成

文件操作

1. Linux系统调用及用户编程接口(API)

    所谓系统调用是指操作系统提供给用户的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的的服务

为什么用户程序不能直接访问系统内核提供的服务呢?

 

由于在Linux中,为了更好地保护内核空间,将程序的运行空间分为内核空间和用户空间(也就是常称的内核态和用户态),它们分别运行在不同的级别上,在逻辑上是相互隔离的。

 

系统调用并不是直接与程序员进行交互的,它仅仅是一个通过软中断机制向内核提交请求,以获取内核服务的接口。在实际使用中程序员调用的通常是用户编程接口—API

1.函数的作用 2.函数的参数 3.函数的返回值

 

Linux 文件:

“一切皆为文件”——在Linux中对目录和设备的操作都等同于对文件的操作。

普通文件、目录文件、链接文件、设备文件

 

文件及文件描述符——fd

文件描述符是一个非负的整数,它是一个索引值,并指向在内核中每个进程打开文件的记录表。

 

系统调用——创建creat

函数的作用:创建一个文件

函数的原型:int creat(const char *pathname,mode_t mode);

文 件 头:#include <sys/types.h>

          #include <sys/stat.h>

          #include <fcntl.h>

返 回 值:成功:新的文件描述符

          出错:-1

mode:创建模式

S_IRUSR:可读

S_IWUSR:可写

S_IXUSR:可执行
    S_IXRWU:可读、可写、可执行

#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!\n",filename);
        exit(EXIT_FAILURE);
    }else{
        printf("create file %s success!\n",filename);
    }
}
 
int main(int argc,char *argv[])
{
    int i;
     
    if(argc<2)
    {
        perror("you haven't input the filename,please try again!\n");
        exit(EXIT_FAILURE);
    }
 
    for(i=1;i<argc;i++)
    {
        create_file(argv[i]);    
    }
 
    exit(EXIT_SUCCESS);
}


 

系统调用——打开open

函数的作用:打开一个文件;

函数的原型:int  open(const char *pahtname, int flags);

int  open(const char *pahtname, int flags, mode_t mode);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值