嵌入式记录其一

打开文件描述符:open\creat\close

读\写文件描述符:read\write

定位文件指针:lseek

 

 

 

 

 int fd;

fd=open("/home/marc/oldfile",O_RDONLY);//打开已有文件,这里的fd就作为文件描述符来用

int fd1;

fd1 = open(“/home/marc/newfile”, O_RDWR | O_CREAT, 0644);//第一个参数是路径到文件名,第二个参数是决定文件的权限,第三个是代表rw-r--r--的意思,用户可读写,用户组可读,其他可读

这里值得一提的是open()函数的返回值成功则返回一个文件描述符,失败则返回-1;

perror(const char *s)作为一个打印系统错误的函数,该函数会将系统最后一个错误打印出来,s作为一个字符串后加冒号作为一个提示。

EXIT_FAILURE是一个宏定义常量,主要是用于exit()函数作为参数,表示一个程序没有正确运行。该常量在stdlib.h中定义。

exit(EXIT_SUCCESS);表示正常运行并且关闭所有程序。

 

------------恢复内容开始------------

打开文件描述符:open\creat\close

读\写文件描述符:read\write

定位文件指针:lseek

 int fd;

fd=open("/home/marc/oldfile",O_RDONLY);//打开已有文件,这里的fd就作为文件描述符来用

int fd1;

fd1 = open(“/home/marc/newfile”, O_RDWR | O_CREAT, 0644);//第一个参数是路径到文件名,第二个参数是决定文件的权限,第三个是代表rw-r--r--的意思,用户可读写,用户组可读,其他可读

这里值得一提的是open()函数的返回值成功则返回一个文件描述符,失败则返回-1;

perror(const char *s)作为一个打印系统错误的函数,该函数会将系统最后一个错误打印出来,s作为一个字符串后加冒号作为一个提示。

EXIT_FAILURE是一个宏定义常量,主要是用于exit()函数作为参数,表示一个程序没有正确运行。该常量在stdlib.h中定义。

exit(EXIT_SUCCESS);表示正常运行并且关闭所有程序。

文件中包含一个指针lseek指针,假如读了一百个字节,这个指针就在101个位置   几个预定义的宏:SEEK_SET可以将指针调回最开始的位置  SEEK_CUR设置指针位置相对于指针当前位置 SEEK_END从尾部开始往回回

标准I/O库函数:有移植性

io阻塞:比如文件还没准备好放入缓冲区等待的情况

io多路转接:select(int n,fd_set *readfds,

        fd_set *writefds,fd_set exceptfds,struct timeval *timeout)函数//n是反映select是否成功,成功的话返回0不成功返回-1,第二个参数是监听读的集合,第三个参数监听写的集合,第四个是是否出现异常,第五个表示监视这个设备的时间,比如5就是五秒,0就是不监控,null就是一直监控

描述符集合处理宏调用,具有函数作用

FD_ZERO(fd_set *set)  清除集合set,集合相当于容器,把容器里的所有杂物清空

FD_SET(int fd,fd_set *set)    把描述符fd加到set集合里

FD_CLR(int fd,fd_set *set)    清除单个fd

FD_ISSET(int fd,fd_set *set)    判断fd是否在集合set中

总结来说这几个宏功能跟函数是一样的

管道有一边输入一边输出,管道的特点,有输入就有输出

建立两个以上的管道才能多路监听

mknod创建一个文件节点  mknod pipe1 p 创建一个名为pipe1的有名管道(p)

 

posted @ 2021-09-27 15:31  无情之结  阅读(37)  评论(0)    收藏  举报