![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unix环境编程
kilvanity
这个作者很懒,什么都没留下…
展开
-
进程通信
为什么需要进程通信呢 因为进程之间不能使用同一个全局变量 全局变量是什么 全局变量是存储在静态存储区的,存储在栈上的是局部变量,局部变量会在栈上弹走。也就是说同一个进程的不同函数都可以共享全局变量,而不能共享局部变量,因为函数执行完之后局部变量会弹走。 为什么进程之间不能使用同一个全局变量呢 因为进程使用虚拟内存进行内存管理:每个进程占用一个独立虚拟内存块,每个进程眼中的虚拟内存空间是不一样的,当然没法调用一个全局变量啦。 那么进程之间应该怎么通信呢 管道、FIFO、消息队列等方法 附:静态变量和全局变量的原创 2021-04-02 17:07:49 · 143 阅读 · 0 评论 -
阻塞IO和非阻塞IO的区别
首先,我们知道,read和write函数是可以使用缓冲的,如果文件作为标准输出,那么可以一次性读完,调用一次write即可读完;如果终端作为标准输出,那么终端一次性所能接收的数据量是有限制的,因此会调用多次write。 事情就发生在使用终端作为标准输出的场景下,当调用write向终端写入数据的时候,如果此时内核正在忙: 1、阻塞IO 如果将输出设置为阻塞IO,那么由于内核在忙,write进程将会阻塞,直到接收到内核传来的信号之后,才会重新唤醒,并且成功执行一次write操作。 2、非阻塞IO 如果将输出设置原创 2021-04-02 09:52:31 · 824 阅读 · 0 评论 -
《Unix环境高级编程第三版》程序索引
学习Unix环境高级编程一书时,根据书上的代码进行练习是一种提高阅读兴趣的好方法。该文可以帮助你编译代码,以及索引书中程序的位置。 作者使用的是Centos7操作系统进行练习。 如果没有Unix环境高级编程第三版课本以及源代码,可以从作者github里获取,链接是 ...原创 2021-03-16 16:01:23 · 73 阅读 · 0 评论 -
linux文件权限
目录没有x权限:无法进入目录。目录有x权限无r权限:可以进入,但无法ls(读)原创 2021-03-14 21:50:50 · 65 阅读 · 0 评论