linux文件操作——系统调用

linux操作系统奉行一切皆文件的理念,所有文件设备几乎都可以用一套系统调用即open()/close()/write()/read()等来操作。系统调用和C库调用操作文件类似。Linux自带的man手册是最权威的。通过查看man手册来查看系统调用用法。

man手册一般用法:

man <函数名>

查看常用函数用法

open()

man 2 open

在这里插入图片描述

man手册列出了syscall的要包含的头文件、用法及参数描述等。截取部分截图。


close()

man 2 close 

在这里插入图片描述


write()

man 2 write

在这里插入图片描述


read()

man 2 read

在这里插入图片描述


lseek

man 2 lseek

在这里插入图片描述


简单的文件操作

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

#include "string.h"
#include "stdio.h"

char write_buf[] =  "Linux,uCos,RT-Thread\r\n";

char read_buf[1024] = {0};

int main(int argc, char **argv)
{
    int fd;               //存放文件描述符
    int len;

    fd = open("test.txt", O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);    //1、 打开文件

    if (fd < 0)
    {
        printf("open failed\r\n");
        exit(0);
    }

    len = write(fd, write_buf, strlen(write_buf));                //2、 写文件
    
    lseek(fd, 0, SEEK_SET);               //3、 写完之后,文件指针指向了文件尾,所以要设置文件指针指向开头

    len = read(fd, read_buf, strlen(write_buf));          //4、 读文件
    if (len < 0)
    {
        printf("read failed\r\n");
        close(fd);
    }
    else
    {
        printf("read : %s\r\n", read_buf);
    }
    
    close(fd);                              //5、 关闭文件

    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_36413982/article/details/105914926