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