man2 用来访问 UNIX 内核提供的服务的系统调用或函数。例如 fork 系统,它从一个现有的进程生成一个新进程。输入 man fork 显示它的手册页。使用系统软件的程序员常常参考这个部分。...UNIX 几乎完全使用文本配置文件定制系统的操作。有大量配置文件,包括网络服务的列表 (/etc/services) 和可用的 shell 列表 (/etc/shells) 等等。...参数name为环境变量的名称,如果该变量存在则会返回指向该内容的指针。环境变量的格式为name=value。 返回值:执行成功则返回指向该内容的指针,找不到符合的环境变量名称则返回NULL。...i=0; i<2; i++){ fork(); printf("-"); } return 0; } 注意:输出8个-,而不是6个- 1.fork()系统调用是Unix...Unix下的设备有“块设备”和“字符设备”的概念,所谓块设备,就是以一块一块的数据存取的设备,字符设备是一次存取一个字符的设备。磁盘、内存都是块设备,字符设备如键盘和串口。
本章讲的都是一些非常基础的知识,目的是为了下一章讲进程控制做铺垫,所以,本章就不做过多的总结了,直接看图吧。
在unxi/linux编程实践第七章的基础上完成的一个小的终端弹球游戏,先来个截图。 存在问题 光标闪烁问题。...知识点 这个小游戏用到了以下几个知识点: 信号处理 计时器的使用 curses库的使用 环境&命令 ubuntu 18.04 gcc mybounce.c -o mybounce -lncurses
本章涉及到线程的一些基本知识点,讨论了现有的创建线程和销毁线程的POSIX.1原语,此外,重点介绍了线程同步问题,讨论了三种基本的同步机制:互斥量、读写锁、...
《UNIX环境高级编程(第3版)》是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的第3版。...《UNIX环境高级编程(第3版)》内容权威,概念清晰,阐述精辟,对于所有层次UNIX/Linux程序员都是一本不可或缺的参考书。...Richard Stevens所著的《UNIX高级环境编程》。现在,Stevens的同事Steve Rago彻底更新了这本经典著作。...为了使读者能融会贯通,书中还提供了几个贯穿整章的案例,每个案例都根据现在的技术环境进行了全面更新。 《UNIX环境高级编程(第3版)》帮助了几代程序员写出强大、高性能、可靠的代码。...Raymond,《UNIX编程艺术》作者 Stephen Rago的更新版本对于使用众多UNIX及相关操作系统环境的广大专业用户来说是一个迟来的喜讯。
目录 前言 unix基础知识 unix标准化和实现 unix提供的文件IO 文件和目录 标准IO 系统数据文件 前言 笔者将《unix环境高级编程》主要内容总结为三篇:文件篇,进程篇,高级io和进程间通信三大板块...本文是unix环境高级编程系列文章第一篇:文件篇。...体系结构 操作系统是一种特殊的软件,它控制计算机硬件资源,提供程序运行环境 此软件称为内核,它相对较小,位于环境的中心 内核的接口被称为系统调用 公共函数库构建在系统调用接口上 系统调用一般比普通函数调用需要花费更多时间...导致读到的字节数小于要求读字节数的情况: 普通文件:读到达到要求字节数时,已经读到文件结尾了 终端设备文件:一次最多读一行 网络数据:缓存区大小小于要读字节 管道文件:管道包含的字节小于要读字节 7....7. 时间格式 日历时间(UTC时间) ? 更高精度的时间 ? ? 各种时间的转化关系 ?
目录 前言 进程环境 进程控制 进程关系 信号 线程 线程控制 高级IO 进程间通信 网络间进程通信:套接字 高级进程间通信 前言 笔者将《unix环境高级编程》主要内容总结为三篇:文件篇,进程篇,高级...本文是unix环境高级编程系列文章第二篇:进程篇。...最后介绍信号和fork对线程的影响 守护进程 主要说明守护进程的特征,常见的系统守护进程,以及守护进程的编程规则。然后介绍处理守护进程的通用日志架构,最后介绍守护进程的一些惯例 一. 进程环境 1....负责在自举内核后启动unix系统。...l要求每个参数单独传入,v要求传入参数数组 以e结尾的函数可以传递环境字符串指针 7. 解释器文件 在文本文件第一行添加 #! pathname,比如 #!
一、总结 在写之前,先唠几句,《UNIX环境高级编程》,简称APUE,这本书简直是本神书,像我这种小白,基本上每看完一章都是“哇”这种很吃惊的表情。...UNIX使用三种数据结构(进程表项,文件表项和V-Node节点表项)来表示一个打开的文件,如下图。这样当多个进程访问一个文件,只用新建一个进程表项,然后引用对应的文件即可。...因此,对于这样的多个操作造成文件共享信息的不一致,UNIX给出的解决方案是原子操作,对于上面这种情况的一个解决方案是使用open+O_APPEND组合的原子操作。 二、看图说话 一图胜过千言,看图!
本章说明了很多高级I/O功能: 非阻塞I/O——发一个I/O操作,不使其阻塞,记录锁,STREAMS机制 I/O多路转接——select和poll函数 re...
7.4 命令行参数 7.5 环境表 每个程序都接收到一张环境表。跟参数列表一样,环境表也是一个字符指针数组。其中每个指针包含一个以null结束的C字符串的地址。...命令行参数和环境变量: 可以用size查看正文段、数据段、bss段的长度(以字节为单位): xcy@xcy-virtual-machine:~/test/unix$ sizea.out text...返回值都是void* 7.9 环境变量 环境变量字符串的形式是: name=value UNIX 内核并不查看这些字符串,它们的解释完全取决于各个应用程序。 ISO C定义了一个函数getenv。...可以用其取环境变量值。 还可以设置环境变量,比如改变环境变量、增加新的环境变量。...(这个也需要理解) 1)删除:比较简单,先在环境表中找到改指针,然后将所有后续指针都向环境表首部顺次移动一个位置。
本章重点介绍了进程控制的几个函数:fork、exec族、_exit、wait和waitpid等,主要需要掌握的是父进程和子进程之间的运行机制,怎么处理进程的...
一、总结 文件I/O一章讲了不带缓冲的I/O,本章讲的是带缓冲的I/O。不带缓冲针对的是内核的系统调用,而带缓冲针对的是用户空间的标准库函数,是基于带缓冲的...
= %7ld, %5.2f %%\n", nchr, nchr*100.0/ntot); printf("FIFOs = %7ld, %5.2f %%\n", nfifo...可能会很奇怪,因为根目录下每个用户(学生)都应该配了apue开发环境,但是为啥就我一个和另外一个14级的学生呢,其实也正常,因为我只是一个普通用户,访问不了其他用户的目录文件。...之后就开始翻书查函数调用方法开始着手写了起来,就是在递归的过程中发现如果递归深度过大会直接退出程序,需要一定的剪枝比如不是目录文件就直接统计,打不开就直接返回,总体来说,这次实验对我来说是一次不小的挑战,但完成任务之后还是对自己unix...环境下c语言编程有很大帮助的。...= %7ld, %5.2f %%\n", nchr, nchr*100.0/ntot); printf("FIFOs = %7ld, %5.2f %%\n", nfifo
在UNIX环境高级编程(APUE)中提到了守护进程的创建方法,思路很清晰,所以这里通过代码具体研究下。 1 完整程序:单实例守护进程 根据APUE的介绍,创建守护进程基本需要如下7个步骤。...1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
针对此题,原有4.1.c中是lstat函数,运行时参数argc[1]是以创建的符号链接时,会返回该符号链接有关的信息,而不是符号链接引用的信息;如果是stat函...
shell还是一个功能强大的编程语言,易于编辑,易于调试,灵活性强,shell是结识知识性的脚本语言,在我们shell中直接调用Linux的系统命令操作即可。 2....Shell的分类 (1)Bourne Shell(bshell) 从1979年在unix系统就开始使用了。...echo $变量名 (2)定义一个简单的变量 (3)变量的叠加方式1 (4)变量的叠加方式2 (5)查看变量:set (6)变量的删除:unset 变量名 (7)...环境变量(系统运行时所用到的变量) 特点:a:它不仅在当前的shell中有效,在子shell中都有效 b:如果把环境变量写道指定的文件中,那么该环境变量在所有的shell中都生效...前面的命令执行成功后才能执行后面的命令 (2)逻辑或:|| 前面的一个命令执行失败会执行后面 前面的命令执行成功后面的就短路 (3)无逻辑符号 多个命令顺序执行,命令之间没有任何逻辑关系 7.
写在前面 这应该是大学期间读的第一本操作系统方面的书,刚开始接触编程时觉得搞操作系统才是最牛X的,所以和同学一起去图书馆找书,出来各种Windows操作图书,就找到一般Unix编程哲学感觉可以作为小说看看...Unix编程哲学 关于Unix编程哲学相信大家或多或少多个角度都了解或听到过一些。...比如Kiss:keep it simple, stupid "简单原则"----尽量用简单的方法解决问题----是"Unix哲学"的根本原则,也是被更多人认可的,以至于在设计模式这种微观角度或者应用架构涉及这种宏观角度
前言 笔者将《unix环境高级编程》主要内容总结为三篇:文件篇,进程篇,高级io和进程间通信三大板块。本文是unix环境高级编程系列文章第三篇:高级IO和进程间通信篇。...然后介绍socket编程的连接建立,数据传输等。 高级进程间通信 高级进程间通信提供一种可以在进程间传递文件描述符的机制,包括STREAMS管道和unix域套接字 一. 高级IO 1....记录锁 2.1 概述 概念:当一个进程正在读或修改文件的某个部分时,可以阻止其他进程修改同一文件区 flock:文件锁,早期的unix只支持锁整个文件,使用该函数 fcntl:记录锁,允许锁文件中的任意字节数的区域...7. readn和writen 按需多此调用read和write,直至读写了N各字节数据 使用与读写管道,网络设备或终端数据 ? 8. 存储映射IO 使一个磁盘空间与一个存储空间中的缓冲区映射。...UNIX域套接字 用于在同一台机器上运行的进程之间通讯
); 返回:若成功返回非负数,若失败返回-1 family表示协议族,协议族取值如表1所示: family 说明 AF_INET IPv4协议 AF_INET6 IPv6协议 AF_LOCAL Unix...指定了协议族(IPv4、Ipv6或Unix)和套接字类型(字节流、数据报或原始套接字),并没有指定本地协议地址或远程协议地址。
本书源码下载地址 浏览器下载 《UNIX网络编程》源码地址 wget wget http://www.unpbook.com/unpv13e.tar.gz 开始编译 cd unpv13e/ 按照README
领取专属 10元无门槛券
手把手带您无忧上云