嵌入式记录其一
打开文件描述符: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)

浙公网安备 33010602011771号