![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unix高级环境编程---书籍
文章平均质量分 61
LuckyDog0623
来自一个社会底层打工人的呐喊
展开
-
Unix环境高级编程--3-文件IO---3.10文件共享
1、内核用于所有IO的数据结构打开文件的背后:fd = open("/tmp/text.c", O_RDWR | O_CREATE, 0777); fd背后关联着3个数据结构,正是这3个数据结构,决定了打开文件的属性,以及多进程之间对同一个文件的影响(也就是文件共享);(1)每个进程在进程表中有一个记录项,记录项中有一个打开文件描述符表,也就是一个矢量,每个描述符占用一个矢量位;与每个文件描述符相关联的是:①文件描述符标志(close_on_exec);②指向一个文件表项的指针(2)内核为所有打原创 2021-05-04 13:16:18 · 135 阅读 · 0 评论 -
Unix环境高级编程--8-进程控制---8.5函数exit-8.6 函数wait 和waitpid
进程的退出最近在工作中遇到了一个问题,背景是:init进程会创建pc进程,pc进程会创建pro1进程,pro1又会创建pro2,pro3和pro4三个二级进程,但是pro1创建的二级进程起来后将交给pc管理;由于线程之间又相互有依赖的顺序关系;现在需求pro1进程完全杀死之后其他进程才能去杀,起来也是要pro1完全起来才能起其他进程;但是由于pro1初始化多,导致时间比较久,直接连续发送信号给各个进程会有问题;system("kill pro1");system("kill pro2");原创 2021-05-02 01:10:13 · 268 阅读 · 0 评论 -
Unix环境高级编程--3-文件IO---3.3-3.8 open,create, close, lseek, read, write
1、int open(cosnt char *pathname, int flag, .../*mode_t mode*/)2、int open(const char *pathname, int flag);flag:必选项:O_RDONLY, O_WRONLY, O_RDWR, O_EXEC,只读, 只写,读写,只执行可选项:O_APPENDO_CLOEXEC 把FD_CLOEXEC常量设置为文件描述符标志,详情查看fcntl函数O_CREATO_DIRRCTORY..原创 2021-03-27 12:39:37 · 104 阅读 · 0 评论 -
Unix环境高级编程--3-文件IO---3.2文件描述符
文件描述符就是一个非负整数;当我们用open打开一个文件的时候相当于得到了一个结构体;为什么是一个整型数,因为实际上它是一个数组下标;①我们打开一个文件会有一个唯一的inode号用于标识唯一的文件;②当我们用open打开一个文件的时候,产生一个结构体,结构体中有一个position的信息,存放当前文件的属性信息;③用户无法看到这个结构体,因为系统再把结构体指针放在一个大的数组中了,返回了数组的下标;④文件描述符优先选用当前可用最小的;⑤这个用于存放结构体指针的大数组是存在哪呢?? .原创 2021-03-27 11:47:08 · 118 阅读 · 0 评论 -
Unix环境高级编程--3-文件IO---3.1文件IO内容
1、文件描述符细节实现2、文件IO操作函数3、文件IO和标准IO区别4、IO的效率5、文件共享6、原子操作7、程序中的重定向:dup、dup28、同步:sync、fsync、fdatasync9、fcntl10、ioctl11、/dev/fd/目录...转载 2021-03-27 10:39:50 · 107 阅读 · 0 评论 -
Unix环境高级编程--3-文件IO---3.14函数fcntl
1、函数fcntl用于改变已经打开文件的属性#include<fcntl.h>int fcntl(int fd, int cmd, ... /*int arg*/);第三个参数有可能时指向结构体指针,也有可能是一个整数函数的5个功能:(1)复制一个已经有的文件描述符(cmd=F_DUPFD 或者 F_DUPFD_CLOEXEC)。(2)获取/设置文件描述符标志(cmd= F_GETFD, F_SETFD)(3)获取或设置文件状态标志(cmd=F_GETFL, F_S原创 2021-03-26 23:48:58 · 130 阅读 · 0 评论 -
Unix环境高级编程附录B:apue.h
/***************************************************附录B**************************************************/#ifndef _APUE_H#define _APUE_H#define _POSIX_C_SOURCE 200809L#define _XOPEN_SOURCE 700#define <sys/types.h>#define <sys/stat.h.原创 2021-03-23 22:00:37 · 108 阅读 · 0 评论