嵌入式Linux系统开发
------通过内核提供的服务实现相应功能
1、Linux系统空间分布:
用户空间、内核空间
2、划分空间的目的:
保护内核空间不能被用户空间随便访问;
3、用户空间如何访问内核空间?
必须发送系统调用;
4、如何发生系统调用?
调用操作系统提供的函数接口–API
学习嵌入式Linux系统开发实际上学习的时用户编程接口API
文件操作、进程、线程操作(多任务)、网络、设备
系统调用函数
creat函数
函数原型:int creat(const char *pathname, mode_t mode);
成功返回为只写打开的文件描述符,若出错则返回-1.
注意:此函数等效于:
open(pathname, O_WRONLY | O_CREAT | O_TRUNC, mode);
open函数
函数原型:int open(const char *pathname,flags,int perms)
pathname:被打开的文件名,可包含路径
flag :文件打开的方式,参数可以通过“|” 组合构成,但前3 个参数不能互相重合。
O_REONLY :只读方式打开文件
O_WRONLY :可写方式打开文件
O_RDWR :读写方式打开文件
O_CREAT :如果文件不存在时就创建一个新文件,并用第三个参数为其设置权限。
O_EXCL :如果使用O_CREAT 时文件存在,则可返回错误信息。这一参数可测试文件是否存在。
O_NOCTTY :使用本参数时,如文件为终端,那么终端不可以作为调用open ()系统调用的那个进程的控制终端。
O_TRUNC :如文件已经存在,并且以只读或只写成功打开,那么会先全部删除文件中原因数据。
O+APPEND :以添加方式打开文件,在打开文件的同时,文件指针指向文件末尾。
perms:权限,可以用数字表示
返回值,成功返回文件描述符,失败返回-1
write函数
函数原型:int write ( int fd,void *buff ,int datalen);
fd:写数据的文件描述符
buff:指定需要写入数据的起始位置
datalen:写入数据的长度
返回值:-1,出错 成功:返回写入的字节个数
read函数
函数原型:int read (int fd,void*buff,int size);
fd:将要读取数据的文件描述符
buff:指定获取的数据在程序中存储的起始位置
size:本次最多读取的字节个数,一般为缓冲区的大小