设为首页 加入收藏

TOP

Unix环境高级编程第二版读书笔记
2014-11-24 08:17:56 来源: 作者: 【 】 浏览:0
Tags:Unix 环境 高级 编程 第二 读书 笔记

1.5 I/O


的两个常量STDIN_FILENO, STDOUT_FILENO是POSIX标准的一部分, 他们指定了标准输入和标准输出的文件描述符,他们的典型值分别是0和1。该头文件包含了很多UNIX系统服务的函数原型。


stdin和stdout常量定义在中,表示标准输入和标准输出文件。


UNIX环境高级编程中文第二版PDF高清版 下载地址 http://www.linuxidc.net/thread-2063-1-1.html


1.6 程序和进程


1.程序


是存放在磁盘上,处于某个目录中的一个可执行文件。使用6个exec函数中的一个由内核将程序读入存储器,并使其执行。


2.进程


程序执行的实例process。某些操作系统用任务task表示被执行的程序。getpid()返回进程ID。


3.进程控制


fork(), exec(), waitpid()


4.线程和线程ID


通常一个进程只有一个控制线程,但是如果不同部分各使用一个控制线程,那么整个问题解决起来就容易很多。在一个进程内的所有线程共享同一地址空间,文件描述符,栈以及与进程相关的属性。因为他们能访问同意存储区,所以各线程在访问共享数据时需要采取同步措施以避免不一致性。


在一个进程中,我们用线程ID引用相应的线程。


在进程模型建立后很久,线程模型才被引入到unix系统中,这两个模型之间存在复杂的相互作用。


1.7 出错处理


unix函数出错时,常常返回一个负值,而整形变量errno通常被设置为含有附加信息的一个值。


文件中定义了符号errno以及可以赋予它的各种常量,这些常量都以字符E开头。


在支持线程的环境中,多个线程共享进程地址空间,每个线程都有属于它自己的局部errno以避免一个线程干扰另一个线程。


例如:linux支持多线程存取errno,将其定义为:


extern int *__errno_location(void);


$define errno (*__errno_location())


对于errno应当知道两条规则: 1,如果没有出错,则其值不会被一个例程清楚。2,任一函数不会将errno值设置为0.


c标准定义了两个函数,它们帮助打印出错信息


#include


char *strerror(int errnum);



#include


void perror(const char *msg)


1.8 用户标识


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇QT中DBus的用法 下一篇Ubuntu下创建Linux内核树 驱动hel..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·求navicat for mysql (2025-12-26 13:21:33)
·有哪位大哥推荐一下m (2025-12-26 13:21:30)
·MySQL下载与安装教程 (2025-12-26 13:21:26)
·Linux_百度百科 (2025-12-26 12:51:52)
·Shell 流程控制 | 菜 (2025-12-26 12:51:49)