一:使用标准库函数
使用stdio.h里面的函数:fopen,fwrite,fread,fclose
优点:被各个平台支持
二:使用LINUX api
包含头文件:
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
使用函数:open /close/write/read
用法:
int fd = open ("/home/mytest/123.txt",O_WRONLY | O_CREAT, 0644)
);
int n = read(fd,buf,maxsize);
write(fd,buf,n);
close(fd);
注意换行符:windows:\r\n Linux :\n
以写方式打开:
int fd = open ("/home/mytest/123.txt",O_WRONLY | O_CREAT, 0644)
参数1:文件路径
参数2:标识为,O_WRONLY表示写入,O_CREAT表示不存在时,创建新文件,O_RDONLY表示读取文件,O_RDWR表示以可读可写方式打开文件
额外的标识符:
O_CREAT与O_WRONLY联用,若打开的文件不存在则创建新文件
O_TRUNC可以与O_WRONLY联用,在打开文件时清空文件
O_APPEND可以与O_WRONLY联用,表示追加内容
O_NONBLOCK表示以非阻塞方式读、写文件
参数:0644,六进制,表示创建文件时的权限位
三、LINUX下的设备文件
存在在/dev目录下
设备文件用于代表一个物理设备,例如声卡、显卡、键盘、鼠标、摄像头等
每次对文件的操作实际上都是在操作这个设备,比如读写文件信息,实际上是在向该设备读取数据或者发送数据
比如声卡文件存放的路径在:/dev/snd
ioctl:用于向设备发送一个额外的命令
这个函数包含在头文件:<sys/ioctl.h>
用法(对于嵌入式开发)例如:/dev/led对应了一个LED灯
int fd = open("dev/led", O_WRONLY);
ioctl(fd,100,1);//控制灯灭 注意:第二个参数是设备依赖的请求码
ioctl(fd,100,0);//控制灯亮
close(fd);