文章目录7.0 进程环境7.1 main 7.0 进程环境 7.1 main 首先我们的程序都是从main函数开始调用main函数原型 int main(int argc,char *argv[]) argc是命令行参数,argv是指向参数的各个指针组成的数组,当内核执行...
文章目录7.0 进程环境7.1 main 7.0 进程环境 7.1 main 首先我们的程序都是从main函数开始调用main函数原型 int main(int argc,char *argv[]) argc是命令行参数,argv是指向参数的各个指针组成的数组,当内核执行...
fopen 返回结果 若执行成功:返回FILE 指针,一个非负整数。 若执行失败:返回NULL,并设置errno为对应的非负整数。...errno为全局变量,所以想获得正确的出错原因,得立马打印,否则可能会被其他进程修改。...
APUE学习笔记.xmind
标签: unix descriptor file
<br /> <br />[在此处输入文章标题] Chapter 1 UNIX System Overview <br />Unix 架构(程序员角度) 以上图形是重程序员的角度描述Unix的整体架构。...
1.1 Unix体系 内核的接口被称为系统调用。公用函数库构建在系统调用接口之上。shell和公共函数都能直接进行系统调用, 应用程序可以直接进行系统调用,也可以使用shell和公共函数库里的函数,从而间接进行系统调用。...
基本概念 内核使用3个数据结构描述一个打开的文件:进程表、文件表、V节点表 首先了解3种数据结构的概念 1 进程表 ...进程表里是一组打开的文件描述符,如标准输入0,标准输出1,标准错误2... ......
一、文件描述符 按照惯例,UNIX shell使用文件描述符0与进程的标准输入相结合,文件描述符1与标准的输出相结合,文件描述符2与标准出错输出相结合。 二、相关函数 open函数如下,返回文件描述符 ...
第十六章 网络IPC:套接字 本章将考察不同计算机上的进程相互通信的机制:网络进程间通信。在本章中将描述套接字网络进程间通信接口,进程用该接口能够和其他进程通信。参考:...
最后花了一些时间学习了下《unix环境高级编程》。这本书其实买了半年了一直都没有时间打开。平时上班的时候都纠结于一些边角料的工作和细枝末节的技术问题,感觉自己的提升太少了,所以觉得还是要找时间好好补一补...
本章将说明进程之间相互通信的其它技术----进程间通信(IPC) 管道 管道只能在具有公共祖先的两个进程之间只用。通常,一个管道由一个进程创建,在进程调用fork后,这个管道就能在父进程和子进程之间使用...
本文主要是包含了圣经apue中第八章重点部分的解析和部分样分析
标签: linux
APUE学习笔记(部分) 第一章 Unix基础知识 操作系统的体系结构 输入输出 头文件<unistd.h> 每当运行一个新程序时,所有的shell 都为其打开3 个文件描述符,即标准输入(standard input )、标准输出( standard ...
3.2 文件描述符 对于内核,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数。当打开一个现有或者创建一个新文件时,内核向进程返回一个文件描述符。当读写一个文件时,使用open或creat返回的文件描述...
扩展一下,如果本来不止AB两个线程在阻塞,而是多个线程在阻塞,那么因为使用if,所有的线程可能都被唤醒,接着不管条件x是否满足,全都往下执行,则发生了“惊群效应”。首次判断时x==1,此时进入if块内,执行wait...
听说写博客可以提高自己的水平,因此趁着这个机会我想把它重新看一遍,并把每一章的笔记写在博客里面。 我学习的时候使用的平台是Windows+VMware+debian,使用secureCRT来连接(可以实现多个终端连接)。 因为...
本章将考察不同计算机(通过网络连接)上的进程相互通信的机制:网络进程间通信。 套接字描述符 正如使用文件描述符访问文件,应用程序用套接字描述符访问套接字。...许多处理文件描述符函数(如read和write...
11. 1 线程概念 进程可以有多个控制线程,每个线程处理各自独立的任务。一个进程的所有信息对该进程的所有线程都是共享的,包括可执行程序的代码、程序的全局内存和堆内存、栈以及文件描述符。 ...
10.1 信号概念 mac和linux都支持31种信号。不存在编号为0的信号。 产生信号的方式: 当用户按某些终端键时引发终端产生的信号 硬件异常产生信号:除数为0、无效的内存引用等 用户可用kill命令将信号发送给其他进程 ...
16.1 套接字描述符 套接字是通信端点的抽象,用套接字描述符访问套接字。套接字描述符本质上是一个文件描述符,但是不是所有接受文件描述符的函数都接受套接字描述符。 为创建一个套接字,调用socket函数。...
5.1 流和FILE 所有I/O函数都是围绕文件描述符的。 当打开一个文件时返回一个文件描述符,该文件描述符就用于后续的I/O操作。 标准I/O库的操作是围绕流(stream) 进行的。 标准I/O文件流可用于单字节或多字节(“宽...
管道和FIFO仍能有效引用于大量应用程序,但是在新程序中要避免使用消息队列和信号量,而应当考虑使用全双工管道和记录锁。 15.1 管道 管道的局限性: ...#include "apue.h" int main(void) { int n; int
本章介绍一种高级IPC---UNIX域套接字机制,并说明它的应用方法 UNIX域套接字 UNIX域套接字用于在同一台计算机上运行的进程(无关进程)之间的(全双工)通信。相比于因特网套接字,UNIX域套接字效率更高。...
标签: c语言
8.1 进程标识 每个进程都有一个非负整型表示的唯一进程ID。进程ID是可重用的。 ID为0的进程通常是调度进程,常常被称为交换进程(swapper)。 该进程是内核的一部分,它并不执行任何磁盘上的程序。...
12. 1 线程属性 如果在创建线程时就知道不需要了解线程的终止状态,就可以使用pthread_attr_setdetachstate pthread_attr_init对线程属性进行初始化,pthread_attr_destroy执行清理工作。 对于进程来说虚地址空间的...
3.1 文件描述符 对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数。 例子: 0表示stdin, 1表示stdout, 2表示stderr. 文件描述符的变化范围是0~OPEN_MAX-1,早期允许每个进程打开19个...