linux环境编程
文章平均质量分 85
A_YT
这个作者很懒,什么都没留下…
展开
-
《APUE》笔记-第七章-进程环境
1.引言重要知识:命令行参数、环境变量(环境指针、环境表、环境字符串)、进程终止方式、c程序的启动和终止、c程序的存储空间布局、setjmp、longjmp、进程资源限制2.main函数int main(int argc, char *argv[]);//有 argv[argc] = NULL;执行一个新程序的过程:bash->fork()->子shell->exec()->装入新原创 2016-11-03 19:42:18 · 432 阅读 · 0 评论 -
升级gcc后出现错误:/usr/lib/libstdc++.so.6: version `CXXABI_1.3.9' not found
升级gcc后,今天用g++编译一个c++程序时出现一个错误,如下:./destructor: /usr/lib/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ./destructor)经过网上查找后,发现问题是由于升级了gcc,却没有将升级后的gcc的动态库去替换老版本的gcc动态库所致。原创 2017-04-07 19:40:47 · 48336 阅读 · 4 评论 -
sturct stat 结构体中 st_mode 的含义
在中定义的stat结构体内容如下:[cpp] view plain copy print?struct stat { dev_t st_dev; /* ID of device containing file */ ino_t st_ino; /* inode number */ mode_t st_mode; /* protection */ nlink_t st_nlink; /* numbe转载 2017-02-20 15:07:28 · 1101 阅读 · 0 评论 -
《APUE》笔记-第八章-进程控制
1.重点fork、vfork、wait、waitpid、exec、exit,此外还介绍了:孤儿进程、僵尸进程、设置进程相关ID、system函数、进程会计、用户标识、进程调度、进程时间2.进程标识进程ID:非负、唯一、可复用0--对换进程--内核进程;1--init进程-用户进程;2--页守护进程--内核进程。#include pid_t getpid(void);//进程原创 2016-11-04 19:17:07 · 698 阅读 · 0 评论 -
《APUE》笔记-第六章-系统数据文件和信息
1.口令文件口令文件,即Unix系统用户数据库,存储在/etc/passwd中,是一个ASCII文件,包含的字段信息在定义的passwd数据结构中。 pwd.h文件所在位置:/usr/include/pwd.hstruct passwd{ char *pw_name; char *pw_passwd; uid_t uid;原创 2016-11-01 19:01:48 · 579 阅读 · 0 评论 -
《APUE》笔记-第十三章-守护进程
重点:守护进程的编写1.守护进程守护进程在系统引导装入时启动,仅在系统关闭时才终止,无控制终端,在后台运行。通过ps -efj 命令查看守护进程,如下图所示从结果可以看出守护进程没有控制终端,其终端名设置为?,init进程ID为1。系统进程依赖于操作系统实现,父进程ID为0的各进程通常是内核进程,它们作为系统自举的一部分而启动。内核进程以超级用户特权运行,无控制终端,无命令原创 2016-11-13 13:33:10 · 475 阅读 · 0 评论 -
《APUE》笔记-第十二章-线程控制
重点:线程属性、互斥量属性、线程私有数据、线程和fork、线程和信号管理这些属性的函数都遵循相同的模式(1)每个对象与它自己类型的属性对象进行关联(线程与线程属性关联,互斥量与互斥量属性关联,等等)(2)有一个初始化函数,把属性值设为默认值(3)有一个销毁属性对象的函数(反初始化)(4)每个属性都有一个获取属性值的函数(5)每个属性都有一个设置属性值的函数1.线程属性原创 2016-11-12 13:28:03 · 488 阅读 · 0 评论 -
《APUE》笔记-第五章-标准I/O库
#include FILE *fopen(const char *restrict pathname, const char *type);FILE *freopen(const char *restrict pathname, const char *type, FILE *restrict fp);//将一个指定的文件打开为一个预定义的流FILE *fdopen(int fd,原创 2016-10-31 19:54:06 · 464 阅读 · 0 评论 -
《APUE》笔记-第十一章-线程
重点:控制线程、pthread_create、pthread_exit、pthread_join、pthread_cleanup_push、pthread_cleanup_pop、线程同步、、、、使用线程都要包含头文件:#include 同一进程内的多个线程自动的可以访问相同的存储地址空间和文件描述符。一个进程的所有信息对该进程的所有线程都是共享的,包括可执行程序的代码、程序的全局内存和堆原创 2016-11-10 21:02:07 · 616 阅读 · 0 评论 -
《APUE》笔记-第四章-函数总结
这一章的函数很多,为方便记忆,现将大部分(文件截断、读目录、时间相关的函数未总结)总结如下:#include #include #include #include #define BUFSIZEstruct stat buf;uid_t owner;gid_t group;stat("pathname", &buf);fstat(fd, &buf);lstat("p原创 2016-10-30 15:27:59 · 476 阅读 · 0 评论 -
《APUE》笔记-第四章-文件和目录
1.引言本章内容:struct stat、修改struct stat结构的API,目录、文件系统、符号链接注:因为符号链接也是一种文件,所以很多函数都要区分是否跟随符号链接。AT_SYMLINK_FOLLOW,跟随,则得到的是符号链接指向的文件信息;AT_SYMLINK_NOFOLLOW,不跟随,则得到的是符号链接本身的信息。2.stat、fstat、lstat、fstat原创 2016-10-28 16:04:22 · 609 阅读 · 0 评论 -
《APUE》笔记-第三章-文件I/O
1.引言本章讲解的函数有:open、read、write、lseek、close、dup、fcntl、sync、fsync、ioctl都是系统调用,都是不带缓冲的I/O2.文件描述符open、create返回文件描述符fd,其他函数将fd作为参数。分析:1.#include //for STDIN_FILENO、STDOUT_FILENO、STDERR_原创 2016-10-27 11:09:20 · 557 阅读 · 0 评论 -
《APUE》笔记-第十章-信号
重点:信号意义、几种常见信号1.信号信号是软件中断,信号提供了一种处理异步事件的方法:产生信号的事件是随机出现的,需要告诉内核当什么信号发生时该执行什么操作。定义在里(本机实际位置:/usr/include/bits/signum.h),形式:“#define 信号名 信号编号” ,如下图,不存在编号为0的信号。信号处理动作:1.忽略;2.捕捉;3.执行系统默认动作(大多原创 2016-11-06 21:49:52 · 714 阅读 · 0 评论 -
《APUE》笔记-第九章-进程关系
重点:终端登录、网络登录、进程组、会话、控制终端、孤儿进程组1.终端登录终端或者是本地的(直接连接)或者是远程的(通过调制解调器连接)。在这两种情况下,登录都经由内核中的终端设备驱动程序。BSD终端登录:大概过程如下:1.系统自举,内核创建进程ID为1的init进程2.init进程读取文件/etc/ttys,对每一个允许登录的终端设备,fork一次,子进程则exec原创 2016-11-06 16:17:18 · 633 阅读 · 0 评论 -
生产者-消费者问题
生产者-消费者问题是进程间或线程间同步的经典问题。该问题有多种实现,如消息队列、共享内存等,这次我们用的是多线程和互斥锁以及条件变量来实现该问题。动手写程序之前先得把问题想明白。1.该问题难在什么地方?难点其实只有一个,就是同步问题。这个同步涉及了以下几个方面:多个生产者之间的同步(如:生产资源的总数的同步,生产的资源不会乱序的同步)、多个消费者之间的同步(如:消费资源原创 2017-03-27 20:17:21 · 731 阅读 · 0 评论