UNIX环境高级编程1——UNIX基础知识及标准化
1. 出错处理 1.1关于errno 当UNIX出错时,常常返回一个负值,且errno通常被设置为含附加信息的一个值。当然有些函数不返回负值而使用另外的约定(有些返回NULL指针)。 文件<errno.h>中定义了各种errno常量,可以通过名字反映其绑定的出错信息(UNIX在i...
Unix环境高级编程:1-2 基础知识、标准化
CH1-1 实现简易ls功能 CH1-2 有缓冲将stdin复制到stdout CH1-3 无缓冲将stdin复制到stdout CH1-4 打印进程ID CH1-5 stdin读入命令并执行 CH1-6 出错函数的使用方法 CH1-7 打印用户ID和组ID ...
UNIX环境高级编程--第一章 UNIX基础知识
第一章 UNIX基础知识 1.2 UNIX体系结构 从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境。我们将这种软件称为内核(kernel),因为 它相对较小,且位于环境的核心。内核的接口被称为系统调用(system call)。公共...
一、《UNIX环境高级编程》随记——基础知识
一、源码编译 1、源码下载 2、本人linux版本 Ubuntu 14.04 (GUN/Linux 3.13.0-0-32-generic x86_64) 3、前提准备 $sudo apt-get install gcc $sudo apt-get install libbsd-dev $cd ap...
Unix环境高级编程的学习环境的搭建
由于学习的需要, 必须在我的Linux下面搭建这样一个开发环境. (本人使用的操作系统是 Ubuntu 15.04LTS) 1. 在网上下载书中源代码, 点此连接: 点击打开链接 2. 解压文件按 3. cd apue.3e 4. make 在 make 的这个过程中一般会出错,...
《UNIX环境高级编程》笔记——4.文件和目录
一.引言 本章描述文件系统的其他特征和文件的性质。有些背景知识需要注意,例如用户ID与文件权限、文件系统等。 二.函数stat、fstat、fstatat和lstat #include <sys/stat.h>int stat( const char * restrict pathnam...
文件和目录(二)--unix环境高级编程读书笔记
在linux中,文件的相关信息都记录在stat这个结构体中,文件长度是记录在stat的st_size成员中。对于普通文件,其长度可以为0,目录的长度一般为1024的倍数,这与linux文件系统中block的大小是有关系的,符号链接的长度是它所指向的文件名字的长度。 文件的截短可以...
【UNIX环境高级编程】文件I/O
【UNIX环境高级编程】文件I/O大多数文件I/O只需要5个函数: open、read、write、lseek以及close 不带缓冲的I/O: 每个read和write都调用内核中的一个系统调用 1.文件描述符对于内核而言,所有打开的文件都通过文件描述符引用。当打开一个文件时,内核向进程返回一个文...
开坑,Unix环境高级编程,转行之路又得缓缓了
不要问我基础,我用了近6年的Linux系统,最早的版本可以追溯到Ubuntu 8.04,常用的命令 VIM基本上是没压力,遇到问题google 配置环境变量 网络环境也不在话下,C语法基本熟练,过去一年,我自学过 数据结构 算法 CSAPP等课程,开坑Unix环境编程压力不大,开坑的原因主要是为了了...
《UNIX环境高级编程》示例代码中apue.h头文件的配置
最近学习《UNIX环境高级编程》(第3版)这本书,从http://www.apuebook.com/ 下载的示例在编译时,总是提示 "错误:apue.h:没有那个文件或目录",发现apue.h是作者自定义的一个头文件,包括程序所需的常用头文件及出错处理函数。我们将它放入系统头文件中(Linux下是 ...
UNIX环境高级编程——线程属性
pthread_attr_t 的缺省属性值 属性值结果scopePTHREAD_SCOPE_PROCESS新线程与进程中的其他线程发生竞争。detachstatePTHREAD_CREATE_JOINABLE线程退出后,保留完成状态和线程 ID。stackaddrNULL新线程具有系统分配的栈地址。...
UNIX环境高级编程-第三章习题
1,当读写磁盘文件时,read,write等函数确实是不带缓冲机制的吗?请说明原因。答:所有磁盘I/O都要经过内核的块缓存区(即内核的缓冲区高速缓存)。唯一例外的是对原始磁盘设备的I/O,但是我们不考虑这种情况。既然read或write的数据都要被内核缓冲,那么术语“不带缓冲的I/O”指的是在用户的...
UNIX环境高级编程——进程间通信概念
进程间通信 --- IPC 1. 进程间通信的目的 a. 数据传输: 一个进程需要将他的数据发送给另一个进程 b. 资源共享: 多个进程之间共享同样的资源 c. 通知事件: 一个进程需要向另一个或一组进程发送消息,通知它们发生了某种事件。 d. 进程控制: 有些进程希望完全控制另一个进程的执行(如d...
UNIX环境高级编程——存储映射I/O(mmap函数)
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据: 一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间...
《Unix环境高级编程》之 标准I/O库
标准I/O库是由C语言标准ISO C定义的,不仅在Unix上,还有很多系统都实现了此库,与第三章介绍的常用文件I/O函数的区别:后者是POSIX.1标准定义的,且都是不带缓冲的I/O函数,可以看作是系统调用,而前者都是带缓冲的I/O函数,是在系统调用的基础上实现的。 1. 系统调用和库函数的区别 ...
《Unix高级环境编程》第七章 进程环境
Process Environment7-1 Introduction在第八章介绍进程控制原语(process control primitives)之前,我们需要先研究一下进程执行的环境。本章我们会关注: 1. main函数是如何在程序执行时被调用的 2. 命令行参数是如何传递给新进程的 3. 内...
高级UNIX环境编程13 守护进程
linux下,keventd守护进程为内核中运行的执行的函数提供进程上下文bdflush,kupdated将高速缓存中的数据冲洗到磁盘上
《UNIX环境高级编程(第3版)》
《UNIX环境高级编程(第3版)》基本信息原书名:Advanced Programming in the UNIX Environment (3rd Edition) (Addison-Wesley Professional Computing Series)原出版社: Addison-Wesley...
(十三) [终篇] 一起学 Unix 环境高级编程 (APUE) 之 网络 IPC:套接字
.....目录(一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO(二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO(三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录(四) 一起学 Unix 环境高级编程 (APUE) 之 系统数据文件和信息(五) ...
(二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录 (四) 一起学 Unix 环境高级编程 (APUE) 之 系统数据...