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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章