![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
UNIX环境高级编程
OH,CGWLMXUP
这个作者很懒,什么都没留下…
展开
-
UNIX环境高级编程学习笔记系列-------1,UNIX基础知识
1,UNIX体系结构 我们通常将操作系统称为内核,如图所示,内核的接口称为系统调用,公用函数库构建在系统调用接口之上,应用程序就可以使用公用函数库,也可以使用系统调用。shell是一个特殊的应用程序,为运行其他应用程序提供可一个接口。例如,Linux是GNU操作系统使用的内核。 ...原创 2019-06-06 15:26:32 · 147 阅读 · 0 评论 -
UNIX环境高级编程学习笔记系列-------2,文件I/O
UNIX系统中大多数文件I/O只需要用到5个函数:open、read、write、lseek以及close。1,文件描述符 对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数,当打开或者创建一个文件时,内核向进程返回一个文件描述符。当读写一个文件时,使用open、creat返回文件描述符标识该文件,将其作为参数传递给read和write。...原创 2019-06-13 17:21:20 · 127 阅读 · 0 评论 -
UNIX环境高级编程学习笔记系列-------3,文件I/O进阶
1,I/O的效率 大多数文件系统为改善性能都采用某种预读技术。当检测到正在进行顺序读取时,系统就是图读入比应用要求更多的数据,并假想应用很快就会读这些数据。预读的效果从下图可以看出,缓冲区长度小至32字节时的时钟时间与拥有较大缓冲区长度时的时钟时间几乎一样。 2,文件共享 UNIX系统支持在不同进程间共享打...原创 2019-06-13 20:11:07 · 186 阅读 · 0 评论 -
UNIX环境高级编程学习笔记系列-------7,进程间通信
1,进程间通信(InterProcess Communication, IPC) 下图列出不同形式的IPC: 2,管道 管道是UNIX系统IPC的最古老形式,管道有以下两个局限性: (1)半双工(数据只能在一个方向流动) (2)管道只能在具有公共祖先的两个进程之间使用。通常,一个管道有一...原创 2019-06-20 14:52:40 · 177 阅读 · 0 评论 -
UNIX环境高级编程学习笔记系列-------8,网络IPC:套接字
1,套接字描述符 套接字是通信端点的抽象,正如使用文件描述符访问文件,应用程序用套接字描述符访问套接字。 为创建一个套接字,调用socker函数: 套接字通信是双向的,可以采用shutdown函数来禁止一个套接字的I/O。 2,寻址 进程...原创 2019-06-20 16:05:31 · 146 阅读 · 0 评论 -
UNIX环境高级编程学习笔记系列-------4,进程环境
1,main函数 C程序总是从main函数开始执行的,原型: int main(int argc, char *argv[]); argc是命令行参数数目,arfv是指向参数的各个指针所构成的数组。2,进程终止 进程终止的方式: 1,main返回 2,调用exi...原创 2019-06-17 15:36:05 · 166 阅读 · 0 评论 -
UNIX环境高级编程学习笔记系列-------5,进程控制
1,进程标识 每个进程都有一个非负整形表示的唯一ID,进程终止后该ID就成为复用的候选者。2,函数fork 一个现有进程可以调用fork函数创建一个新的进程。 由fork创建的新进程被称为子进程,fork调用一次,但返回两次。两次返回的区别是子进程返回值是0,而父进程的返回值是新建子进程的进程ID。3,进程组...原创 2019-06-18 10:09:14 · 103 阅读 · 0 评论 -
UNIX环境高级编程学习笔记系列-------6,线程
概念性的大家都知道,不做赘述。1,线程创建 新增线程可以通过pthread_create创建。 2,线程终止 进程终止,线程终止,发送到线程的信号就回终止整个进程。 单个线程可以通过3种方式退出: (1)简单地从启动例程中返回,返回值是线程的退出码 (2)可以被统一进程的其他线程取...原创 2019-06-18 14:51:12 · 138 阅读 · 0 评论