栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

入门Linux系统编程--文件

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

入门Linux系统编程--文件

文章目录

一、文件

1、文件编程概述2、文件打开及创建3、文件写入操作编程4、文件读取操作5、文件光标移动操作 二、往期文章

一、文件 1、文件编程概述

Linux操作系统提供一系列的API

打开 open
写 读 write read
光标定位 lseek
关闭 close

2、文件打开及创建

参数说明

#include 
#include 
#include 
#include

int main()
{


        int fd;//文件描述符,为open()的返回值

        fd = open("./file1",O_RDWR);

        if(fd == -1)
        {

                printf("open file1 failedn");
                fd = open("./file1",O_RDWR|O_CREAT,0600);//如果没有文件file1,则创建一个file1
                if(fd > 0)
                {
                        printf("create file1 success!n");
                }
        }

        return 0;

}
                     
3、文件写入操作编程

ssize_t write(int fd, const void *buf, size_t count);
第一个参数是文件描述符
第二个参数是无类型指针
第三个参数是buf的长度

#include 
#include 
#include 
#include
#include 
#include 

int main()
{


        int fd;//文件描述符,为open()的返回值
        char *buf = "I am ok!!!";

        fd = open("./file1",O_RDWR);

        if(fd == -1)
        {

                printf("open file1 failedn");
                fd = open("./file1",O_RDWR|O_CREAT,0600);//如果没有文件file1,则创建一个file1
                if(fd > 0)
                {
                        printf("create file1 success!n");
                }
        }
        write(fd,buf,strlen(buf));//把buf中的内容写入file1

        return 0;

}
~        

4、文件读取操作

#include 
#include 
#include 
#include
#include 
#include 
 #include 
int main()
{
        int fd;//文件描述符,为open()的返回值
        char *buf = "I am ok!!!";

        fd = open("./file1",O_RDWR);

        if(fd == -1)
        {
                printf("open file1 failedn");
                fd = open("./file1",O_RDWR|O_CREAT,0600);//如果没有文件file1,则创建一个file1
                if(fd > 0)
                {
                        printf("create file1 success!n");
                }
        }
        int n_write = write(fd,buf,strlen(buf));
        if(n_write != -1)
        {
                printf("write %d byte to file1n",n_write);
        }

        close(fd);//关闭fd,然后重新打开文件,为了让光标重新回到开头
        fd = open("./file1",O_RDWR);

        char *readBuf;
        readBuf = (char *)malloc(sizeof(char)*n_write+1);//开辟空间

        int n_read = read(fd,readBuf,n_write);

        printf("read %d,context:%sn",n_read,readBuf);//打印出读取的内容
        close(fd);

        return 0;

}

5、文件光标移动操作

off_t lseek(int fd, off_t offset, int whence);
第一个参数是文件描述符
第二个参数是将文件读写指针相对whence移动offset个字节
第三个参数是光标的位置,SEEK_SET是开头位置,SEEK_CUR是当前位置,SEEK_END是结尾位置

#include 
#include 
#include 
#include
#include 
#include 
 #include 
int main()
{


        int fd;//文件描述符,为open()的返回值
        char *buf = "I am ok!!!";

        fd = open("./file1",O_RDWR);

        if(fd == -1)
        {

                printf("open file1 failedn");
                fd = open("./file1",O_RDWR|O_CREAT,0600);//如果没有文件file1,则创建一个file1
                if(fd > 0)
                {
                        printf("create file1 success!n");
                }
        }
        int n_write = write(fd,buf,strlen(buf));
        if(n_write != -1)
        {
                printf("write %d byte to file1n",n_write);
        }

        lseek(fd,0,SEEK_SET);//替换上面两句,重新把光标放到开头
        //或者用lseek(fd,-n_write,SEEK_CUR);
        char *readBuf;
        readBuf = (char *)malloc(sizeof(char)*n_write+1);//开辟空间

        int n_read = read(fd,readBuf,n_write);

        printf("read %d,context:%sn",n_read,readBuf);
        close(fd);

        return 0;

}

lseek(fd,0,SEEK_END);返回值可以用于计算文件大小

二、往期文章

1、入门Linux系统编程–文件
2、入门Linux系统编程–进程
3、入门Linux系统编程–线程
4、入门Linux系统编程–进程间通信
5、入门Linux系统编程–网络编程

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/729721.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号