unix环境高级编程
llongint
这个作者很懒,什么都没留下…
展开
-
13.守护进程
因为没有控制终端,在后台运行,所以需要了解出现问题时如何报告出错情况。1.守护进程的特征1.1 父进程ID为0的通常是内核进程(系统引导装入过程的一部分而启动)kswapd:内存换页守护进程flush:内存达到最小阈值时(也定期)将脏页面冲洗至磁盘sync_supers:定期将文件系统元数据冲洗至磁盘jbd:ext4文件系统中的日志功能1.2 进程1通常是init,是系...原创 2019-08-24 17:14:21 · 193 阅读 · 0 评论 -
5.标准IO
1、引言标准IO库有ISO C标准说明标准IO库处理很多细节:包括缓冲区分配、优化的块长度执行IO2、流和FILE对象当用标准IO库打开或创建一个文件时,已使一个流与一个文件相关联对于ASCII字符集,一个字符用一个字节表示,对于国际字符集,一个字符可用多个字节表示。标准IO文件流可用单字节或多字节字符集。流的定向决定了所读写的字符是单字节还是多字节(创建时未定向),若在未...原创 2019-08-31 19:38:05 · 144 阅读 · 0 评论 -
04.文件和目录
1、stat()、fstat()、fstatat()、lstat()int stat(const char *path, struct stat *buf);int fstat(int fd, struct stat *buf);int lstat(const char *path, struct stat *buf);int fstatat(int dirfd, const char *...原创 2019-08-30 15:21:44 · 179 阅读 · 0 评论 -
07.进程环境
1、main()函数内核执行C程序时(使用一个exec函数),先调用一个特殊的启动例程(编译器调用连接编辑器,连接编辑器设置启动例程地址),启动例程从内核取得命令行参数和环境变量值。2、进程终止8种方式1.main()返回2.exit()3._exit()或_Exit()4.最后一个线程从启动例程返回5.最后一个线程调用pthread_exit()6.调用abort()...原创 2019-08-28 20:30:39 · 139 阅读 · 0 评论 -
08.进程控制
1.进程标识进程ID是唯一的,但也是可复用的,大部分系统采用延迟复用算法ID为0的通常是调度进程,常被称为交换进程,是内核的一部分,不执行磁盘上的程序(所以也叫系统进程)进程ID为1的通常是init进程,自举过程由内核调用,超级用户特权运行,但是普通的用户进程,不会终止#include <sys/types.h>#include <unistd.h>pid...原创 2019-08-28 20:30:05 · 168 阅读 · 0 评论 -
10.信号
信号是软中断,提供了一种处理异步事件的方法1.信号概念以SIG开头的,如夭折信号SIGABRT,闹钟信号SIGALRM等,linux 3.2.0支持31种,Solaris 10支持40种,POSIX实时扩展支持用户自定义的信号很多条件可以产生信号终端按键:如CTRL+C:SIGINT硬件异常:除数为0、无效内存引用:SIGSEGVkill()函数和kill命令某些软件发生,如...原创 2019-08-26 21:34:35 · 189 阅读 · 0 评论 -
14.高级IO
1.非阻塞IO设置方法1.open()时指定O_NONBLOCK标志2.已经打开的可用fcntl()打开O_NONBLOCK标志说明:POSIX标准规定无数据可读时read()返回-1,,errno=EAGAIN,文件结束返回02.记录锁(字节范围锁)商用UNIX系统提供了记录锁机制(使用数据库的前提),POSIX标准的基础是fcntl()方法,linux3.2.0支...原创 2019-08-26 20:23:16 · 113 阅读 · 0 评论 -
11.线程
1、线程标识线程比较int pthread_equal(pthread_t t1, pthread_t t2);RETURN VALUE: equal returns a nonzero value; otherwise returns 0.获取自身IDpthread_t pthread_self(void);线程创建int pthread_create(pthread_t *t...原创 2019-08-22 17:59:23 · 152 阅读 · 0 评论 -
12.线程控制
1.线程属性```cint pthread_attr_init(pthread_attr_t *attr);int pthread_attr_destroy(pthread_attr_t *attr);pthread_attr_setaffinity_np();pthread_attr_setschedparam();pthread_attr_setstackaddr();//设置起始...原创 2019-08-22 17:58:55 · 129 阅读 · 0 评论 -
6.系统数据文件和信息
1、引言历史原因数据文件通常是ASCII文本文件,,顺序扫描很花时间,我们需要非ASCII文本格式存放这些文件,但仍向使用其他文件格式的应用程序提供接口2、口令文件unix系统口令文件字段包含在pwd.h中的passwd结构中,历史原因,这是一个ASCII文件(/etc/passwd)通常包含root项,用户ID是0加密口令字段包含一个占位符某些字段可能为空shell字段包...原创 2019-09-15 22:10:02 · 287 阅读 · 0 评论