随笔分类 - APUE
摘要:不同的shell对使用管道线时创建子进程的顺序不同,本文以bash为例,它是支持作业控制的shell的典型代表。僵尸进程与孤儿进程僵尸进程:先于父进程终止,但是父进程没有对其进行善后处理(获取终止子进程有关信息,释放它仍占有的资源)。消灭僵尸进程的唯一方法是终止其父进程。孤儿进程:该进程的父进程先于...
阅读全文
摘要:1 低速系统调用可能使进程永远阻塞的一类系统调用,包括:1)读某些文件类型(管道、终端、网络设备)的数据2)写某些文件类型(管道、终端、网络设备),但数据不能被立即接受(管道中无空间、流量控制等因素)3)打开某些文件类型4)对已经加上强制性记录锁的文件进行读、写5)某些ioctl函数6)某些进程间通...
阅读全文
摘要:1 记录锁的功能:当一个进程正在读或修改文件的某一区域时,可以阻止其他进程修改同一文件区2 相关数据结构:struct flock{ short l_type;/* F_RDLCK,F_WRLCK,F_UNLCK */ off_t l_start;/* offset in bytes,re...
阅读全文
摘要:1 编写守护进程基本规则1)umake(0)将文件模式创建屏蔽字设置为02)fork之后,父进程exit3)子进程调用setsid4)更改工作目录chdir("/")5)关闭所有打开的文件描述符6)在/dev/null上打开文件描述符1,2,32 守护进程出错处理产生日志消息的三种方式:1)内核进程...
阅读全文
摘要:1 线程属性线程属性:pthread_attr_tint pthread_attr_init(pthread_attr_t *attr)int pthread_attr_destroy(pthread_attr_t *attr) pthread_attr_init 为属性对象分配动态内存空间,pth...
阅读全文
摘要:1 进程组与进程组ID 获取进程组IDpid_t getpgrp()pid_t getpgid(pid_t pid) 设置进程组IDint setpgid(pid_t pid,pid_t pgid)2 会话 一次登录期间产生的所有进程组都属于同一个会话,会话是进程组的集合 通过setsid可以创建会...
阅读全文
摘要:线程属性pthread_attr_ttypedefstruct{ int detachstate; 线程分离状态 int schedpolicy; 线程调度策略 structsched_param schedparam; 线程调度参数 int inheritsched; 线程调度继承性 i...
阅读全文
摘要:1 线程标识 pthread_t类型int pthread_equal(pthread_t tid1,pthread_t tid2)pthread_t pthread_self()2 创建线程int pthread_create(pthread_t *tid,pthread_attr_t *attr...
阅读全文
摘要:1 常见的信号 不能被捕捉或忽略的信号:SIGKILL、SIGSTOP 杀死和停止一个进程的可靠方法 SIGCHLD:进程终止或停止时,SIGCHLD信号发送给其父进程,系统默认忽略此信号 SIGCONT:发送给处于停止状态需要继续运行的进程 SIGHUP:终端接口断开连接时,此信号发送给该终端相关...
阅读全文
摘要:1 core文件简单介绍 在一个程序崩溃时,一般会在指定目录下生成一个core文件,core文件是一个内存映像,同时加上调试信息 使用gdb查看core文件可以指示出导致程序出错的代码所在的文件和行数2 开启或关闭core文件的生成 关闭core文件生成:ulimit -c 0 检查core文件生成...
阅读全文
摘要:1 父子进程的程序空间 子进程获得父进程的数据空间、堆、栈的副本,即不共享这些空间 父子进程共享正文段 不过现在又很多实现采用COW写时复制技术,即共享空间,发生修改时只为修改区域制作副本2 文件共享 父子进程各自维护进程表项(记录有文件描述符、文件描述符标志、文件表指针) 父子进程共享文件表(记录...
阅读全文
摘要:1 进程终止方式 正常终止: 1)从main返回 2)调用exit函数(先执行一些清理函数,atexit函数可以设置清理函数,再进入内核) 3)调用_exit或_Exit(直接进入内核) 4)最后一个线程从启动例程返回 5)最后一个线程调用pthread_exit 异常终止: 1)调用a...
阅读全文
摘要:1 口令文件的shell字段 如果是空,则使用系统默认的shell,一般是/bin/sh /dev/null:阻止对应的用户名登陆系统 /bin/false:同样是阻止特定用户登录,以不成功状态终止 /bin/true:阻止特定用户登录,以成功状态终止2 获取口令文件内容的函数 通过用户ID或用户名...
阅读全文
摘要:1 fwide函数试图设置流的定向(流的定向决定了读写单字节还是多字节字符)int fwide(FILE *fp,int mode) 宽定向返回正值,字节定向返回负值,为定向返回0 已定向流不会改变流的定向2 setbuf函数中指...
阅读全文
摘要:1 sys/stat头文件中定义了stat、fstat、lstat函数2 struct stat 结构struct stat{ mode_t st_mode; ino_t st_ino; dev_t ...
阅读全文
摘要:1. open和create函数在fcntl.h中,close、lseek、read、write函数在unistd.h中 open函数通过进程有效用户ID判断读文件的权限 可以调用access函数判断进程的实际用户ID对文件的权限2. create函数以只读方式打开文件,create(pathn...
阅读全文
摘要:O_DSYNC:每次write都等待物理I/O完成,但是如果写操作不影响读取刚写入的数据,则不等待文件属性更新O_RSYNC:每个以文件描述符作为参数的read操作等待,直到所有对文件同一部分的未决写操作完成O_SYNC:每次write都等到物理I/O完成,包括write引起的文件属性的更新O_SY...
阅读全文