Unix环境高级编程
Unix环境高级编程
橙子砰砰枪
即使盗版书也看的津津有味
展开
-
Unix环境高级编程-Posix线程特有数据
至于使用这个东西的意义,想不通,既然想特定线程,为什么不保存在线程栈里呢?/** * @file specific.c * 特定于线程的数据 */#include <pthread.h>#include <unistd.h>#include <stdio.h>#include <stdlib.h>pthread_key_t key;pthread_once_t once = PTHREAD_ONCE_INIT;// 自定义的析构函数,原创 2022-05-20 23:05:50 · 134 阅读 · 0 评论 -
Unix环境高级编程-posix标准线程
线程1、线程的概念不建议信号和线程混合使用,信号是进程之间的通信方式。你单独完成线程,或者单独完成信号就已经不简单了,没必要线程信号混合使用。如果某一个模块,确实在某一个小范围能混用提升效率再混用。线程说白了就是一个正在运行的函数一个进程空间里最少有一个线程多个线程的内存空间是共享的,所以他们的通信比较简单一个新的库发布出来,就默认支持多线程,如果不支持,要特别声明。线程有很多标准,现在用的最多的是posix标准线程。也就是windows环境下使用的mingw所用的posix标准。还有原创 2022-02-21 22:20:24 · 665 阅读 · 0 评论 -
Unix环境高级编程-进程基本知识
进程基本知识1、进程标识符pid类型pid_t,传统上是有符号16位ps命令进程号是顺次向下使用,直到一个轮回,才会从头开始。文件描述符是每次用最小的。getpid();getppid();#include <sys/types.h>#include <unistd.h>pid_t getpid(void);pid_t getppid(void);2、进程的产生以前提到过的setjmp,这个函数是典型的执行一次,返回两次的函数fork也是一样的,两次返原创 2022-01-11 11:56:44 · 367 阅读 · 0 评论 -
Unix环境高级编程-信号详解
信号 信号是初步异步,线程是强烈异步 两者机制很少混合使用,仅仅会将少量的信号混入同步:顺序执行,可预知异步:哪个事件什么时候到来不确定,产生什么样的结果也不确定异步事件的处理:查询法:适合事件发生频率比较高通知法:适合事件发生频率比较稀疏一、信号1、信号的概念-信号是软件层面的中断信号的响应依赖与中断机制多半的信号的作用都是终止,或者终止+core标准C里面的信号基本是摆设core文件就是出错现场,利于找出程序错误2、signal();NAME原创 2022-01-15 21:06:39 · 591 阅读 · 1 评论 -
Unix环境高级编程-进程间通信
进程间通信同一台主机上的进程通信 – 不同主机上的通信1、管道内核提供,单工,自同步机制:管道永远是迁就慢的那一方在使用管道的时候,一般一个进程的一个管道只使用read或者write,最好把另一端关闭。绝对不会一根管道双工通信,只能用两根管道匿名管道: pipe(); #include <unistd.h> int pipe(int pipefd[2]); #define _GNU_SOURCE /* See feature原创 2022-03-28 15:53:28 · 1781 阅读 · 0 评论 -
Unix环境高级编程-文件系统详解
文件系统:知识性的内容一、目录和文件1、获取文件属性stat,fstat,lstatstat:通过文件路径,获取属性,面对符号链接文件时,获得的是所指向的文件的属性fstat:通过文件描述符获取属性,lstat:面对符号链接文件时,获取的时符号链接文件的属性2、文件访问权限st_mode是一个16位的位图,用于表示文件类型,文件访问权限以及特殊权限位3、umask作用:防止产生权限过松的文件,与某一个数做 & 运算终端:umask 查看umask的值,可以修改4、文原创 2022-01-07 12:45:53 · 912 阅读 · 0 评论 -
Unix环境高级编程-高级IO
高级IO非阻塞IO -- 对比阻塞IO非阻塞:能做就做,不能做也不等待因为速度不匹配,有些IO函数会出现假错,不是因为函数报错,而是阻塞IO在读取或者写入的时候速度太慢。有限状态机编程思想1、非阻塞IO – 补充有限状态机思想数据中继:数据在文件之间传输简单流程:一个程序的自然流程是结构化的 -- 大象装冰箱复杂流程:一个程序的自然流程不是结构化的 -- 多分支多跳转 -- 有限状态机解决 网络协议通常不是简单流程自然流程:作为人类最直接的解决问题的思路2、I原创 2022-02-23 11:28:04 · 1538 阅读 · 1 评论