UNIX C编程学习记录汇总
文章平均质量分 88
本专栏基于APUE英文第三版进行学习总结,博主自己设置题目,并且进行实验,是APUE的浓缩精华。对于后来学习APUE和Linux/Unix环境下的同学有很大的帮助指导作用。
LoveStackover
大龄码农,依然坚持,脚踏实地,不放弃梦想。
展开
-
进程IPC之论证充分的探讨Key和Identifier的关系(五)
1. 问题 探究下Key和identifier的关系?2. 论证资料2.1 以下引用来自science Processes may access these resources only by passing a unique reference identifier to the kernel via system calls. The object’s re...原创 2018-02-18 17:10:53 · 114 阅读 · 1 评论 -
进程IPC之PIPE(一)
1. PIPE#include <unistd.h>int pipe(int fd[2]);Returns: 0 if OK, −1 on error Pipe半双工且只能用于具有共同父进程的进程间通信, 当其返回的时候设置fd[0]为读端口,fd[1]为写端口,且fd[1]与fd[0]相连。如下图所示: 其中Pipe的使用关键只要记住下面这个图: ...原创 2020-11-19 11:53:30 · 458 阅读 · 0 评论 -
高级IO之简单的select_poll_epoll实验(五)
1. 题目 笔者出题:分别使用select, poll, epoll实现回显程序2. 代码展示2.1:select#include <fcntl.h>#include <stdio.h>#include <stdlib.h>#include <err.h>原创 2021-01-19 15:45:44 · 404 阅读 · 0 评论 -
高级IO之Select_pselect_poll_epoll(四)
1. 基础概念 同时操作多个fd时,如果使用阻塞的方式,可能导致程序效率低下。我们可以使用非阻塞方式的IO,通过不断查询数据操作的结果来进行接下来的操作,这种处理方式就是轮询,缺点就是非常消耗CPU资源。所以在某种意义上其相当于阻塞的调用了IO函数read或者write,可以通过异步IO的方式来解决这个问题,但是因为一个进程只使用一个或者几个信号,当捕获该信号时无法判断是哪个fd数据就绪。最...原创 2021-01-19 15:45:32 · 333 阅读 · 0 评论 -
高级IO之MMAP-缺页异常的理解(二)
1. 题目 With read and write, we copy the data from the kernel’s buffer to the application’s buffer (read), and then copy the data from the application’s buffer to the kernel’s buffer (write). With m...原创 2018-02-13 17:48:00 · 516 阅读 · 0 评论 -
多线程之Thread-safe和Async-signal safe分析(十二)
1. 写在前面 笔者刚开始看到thread-safe和async-signal safe,非常草率的就过去了。笔者在开始本文前的理解:不就是重入嘛,当一个函数被调用的时候,又调用了该函数。在异步信号发生的场合对应着async-singal safe,在多线程中发生的场合对应着thread-safe。 如果您的理解和笔者一样,那么本文值得您浏览一下。2. Async-signal Safe...原创 2018-02-10 23:32:26 · 233 阅读 · 0 评论 -
多线程之问题的解决及使用GDB调试多线程多进程的手段(九)
1. 待解决问题[root@localhost ~]# ./examplethread started...parent about to fork...preparing locks...parent unlocking locks...parent returned from forkchild unlocking locks...child returned from fo...原创 2018-02-10 21:59:29 · 207 阅读 · 0 评论 -
多线程之你真的了解Spin_lock吗?(四)
1. 写在之前 在阅读本文前,如果下面的问题您都能回答出来,那么本文你可以从略。 Pthread_spin_lock和Spin_lock的区别?Spin_lock对于单核非抢占内核,为何是无意义的?那么中断处理函数的执行是在内核态或者用户态呢? 如果上面3个问题,您都能回答出来,说明本文所讲述的内容,您大体上都了解了。本文基于Pthread_spin_lock探究下其用...原创 2018-02-09 19:51:37 · 1207 阅读 · 0 评论