APUE学习笔记
文章平均质量分 80
kitestar
这个作者很懒,什么都没留下…
展开
-
(一) Unix/Linux 编程基础
Gcc编译器 Gcc编译时分为四个阶段: 预处理 编译 汇编 链接 .c .cc .a .i .ii .o (编译后文件) .s (汇编后文件) 编译选项 -E 只做预处理,不做其他的 -c 只编译,不链接成可执行文件 生成.o的目标文件 -S 汇编,生成 .s文件。 -g 产生调试工具所必要的符号信息,想要程序能进行调试必须加入这个选项原创 2014-05-17 10:54:59 · 358 阅读 · 0 评论 -
(二) Unix/Linux 文件编程
文件和目录 stat()/fstat()/lstat() 成功返回0,出错返回-1. 获取与文件目录有关的信息结构,fstat参数为已打开的文件描述符,而lstat 可以处理符号链接,当文件是一个符号链接时,返回的是符号链接的信息而不是引用文件的信息(否则在处理目录时可能引起死循环)。 信息结构struct stat 的大部分信息都取自i节点,文件名和i节点存放于目录项。具体信息一般有文件原创 2014-05-17 11:01:40 · 260 阅读 · 0 评论 -
(三) Unix/Linux 进程控制
进程控制理论基础 进程特点:动态性,并发性,独立性,异步性 进程三态:就绪,执行,阻塞 进程ID:PID 父进程ID:PPID 启动进程的用户ID:UID 进程互斥是指若干进程都要使用某一共享资源时,任何时刻最多允许一个进程使用,其他进程必须等待,知道占用该资源的进程释放资源。 临界资源——一次只允许一个进程访问的资源称为临界资源。 临界区——进程中访问临界原创 2014-05-17 11:06:03 · 324 阅读 · 0 评论 -
(五)信号 1
信号:(signal) 中断分为软件中断和硬件中断,软件中断就是用软件的方式中断代码。信号是Unix/Linux系统下最常见的一种软件中断方式,提供了一种处理异步事件的方法。 信号都有一个宏名称,以SIG开头。本质就是一个非负整数,查看信号的命令: kill -l 编程时,信号用宏名称,因为有些系统信号数字不同,但宏名称是一样的。 信号导致代码中断的条件很多,比如: 中断(Ctr原创 2014-05-17 11:11:31 · 366 阅读 · 0 评论 -
(六) 进程间通信
进程间通信(IPC) 进程间通信的原因:数据传输、资源共享、通知事件、进程控制 进程间通信方式: 1. 管道(pipe)和命名管道(FIFO)(最古老的IPC,但目前很少使用) 2. 信号(signal) 3. 消息队列(重点) 4. 共享内存 5. 信号量 6. 套接字(socket)原创 2014-05-17 11:12:38 · 361 阅读 · 0 评论 -
(七) POSIX 线程 ——线程池实例
#include #include #include #include #include #include //线程任务等待链表结构typedef struct worker{void *(*process)(void *arg);void *arg;struct worker *next;}CThread_worker;//线程池结构typedef struct threadpool{pthre原创 2014-08-12 16:27:24 · 532 阅读 · 0 评论