Linux系统编程之文件编程(一)

本文详细介绍了Linux系统编程中的文件操作,包括使用open()、creat()、write()、read()和close()函数进行文件的打开、创建、读写和关闭。还探讨了sizeof与strlen的区别,以及在不同场景下的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、打开/创建文件:open()函数

2、创建文件:creat()函数

3、文件写入操作:write()函数

4、文件读取操作:read()函数

5、关闭文件操作:close()函数

6、sizeof与strlen有以下区别:

在windows中如何编写一个文件呢?

步骤:打开/新建文档---->编辑文档---->保存文档---->关闭文档。

那在Linux中如何编写一个文件呢?

步骤:打开(open)---->读写(read/write)---->关闭(close)

在Linux系统中的文件编程如下

1、打开/创建文件:open()函数

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

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

const char *pathname  指打开文件的路径;
int flags             指打开文件的模式;
打开文件的模式有三种,如下:
    O_RDONLY(可读)  
    O_WRONLY(可写) 
    O_RDWR(可读可写)

open的返回值是一个文件描述符,是一个非负整数

什么是文件描述符:对于内核而言,所有打开文件都由文件描述符引用。文件描述符是一个非负整数。当打开一个现存文件或者创建一个新文件时,内核向进程返回一个文件描述符

open函数打开文件,打开成功返回一个文件描述符,打开失败,则返回-1

下面用代码举例

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(){

        int fd;//定义一个文件描述符
        fd = open("./file1",O_RDWR);//打开一个文件,然后返回一个文件描述符
        printf("fd = %d\n",fd);//打印文件描述符,要是本地中有file1文件,则返回3,否则返回-1

        return 0;
}

若本地文件中有file1文件时,文件描述符的返回值

若本地文件中没有file1文件时,文件描述符的返回值

 

 在文件有三种打开模式后,还能在后面添加几种模式

O_CREAT:若文件不存在则创建它

O_EXCL:如果同时指定了OCREAT,而文件已经存在,则返回-1

O_APPEND:每次写时都加到文件的尾端

O_TRUNC:去打开文件时,如果原文件中有内容,则把原文件中的内容清零,再写入新文件

举例:O_CREAT:若文件不存在则创建它

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(){

        int fd;
        fd = open("./file1",O_RDWR);
        if(fd == -1){

                printf("open file1 failed\n");
                fd = open("./file1",O_RDWR|O_CREAT,0600);
                if(fd > 0){
                        printf("create file1 success!\n");
                }
        }
        return 0;
}
#O_CREAT 指若文件不存在,则创建它
#0600    指新创建文件的权限,可读可写

 O_EXCL:如果同时指定了OCREAT,而文件已经存在,则返回-1

#include <stdio.h>
#include <sys/types.h>
#include <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值