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;
}