随笔分类 -  UNIX环境高级编程学习笔记

学习书籍《UNIX环境高级编程-第2版》所做的一些摘抄和笔记。
UNIX环境编程学习笔记(28)——多线程编程(三):线程的取消
摘要:lienhua342014-11-241 取消线程pthread 提供了pthread_cancel 函数用于请求取消同一进程中的其他线程。#include int pthread_cancel(pthread_t tid);返回值:若成功则返回0,否则返回错误编码pthread_cancel 调用... 阅读全文

posted @ 2014-11-24 23:55 lienhua34 阅读(1569) 评论(0) 推荐(0) 编辑

UNIX环境编程学习笔记(27)——多线程编程(二):控制线程属性
摘要:lienhua342014-11-091 线程属性概括POSIX 线程的主要属性包括 scope 属性、detach 属性、堆栈地址、堆栈大小、优先级。在头文件 pthread.h 中定义了结构体pthread_attr_t 来记录线程的属性。在创建线程的函数pthread_create 的第二个参... 阅读全文

posted @ 2014-11-09 23:42 lienhua34 阅读(713) 评论(0) 推荐(0) 编辑

UNIX环境编程学习笔记(26)——多线程编程(一):创建和终止线程
摘要:lienhua342014-11-08在进程控制三部曲中我们学习了进程的创建、终止以及获取终止状态等的进程控制原语。线程的控制与进程的控制有相似之处,在表 1中我们列出了进程和线程相对应的控制原语。表 1: 进程原语和线程原语的比较进程原语线程原语描述forkpthread_create创建新的控制... 阅读全文

posted @ 2014-11-09 00:51 lienhua34 阅读(1201) 评论(0) 推荐(1) 编辑

UNIX环境编程学习笔记(25)——信号处理进阶学习之 sigaction 函数
摘要:lienhua342014-11-05sigaction 函数跟 signal 函数一样,用于设置信号处理函数。此函数是用于取代 UNIX 早期版本使用的 signal 函数。UNIX 早期版本的 signal 函数在捕获到一个信号之后,就会自动将该信号的处理动作恢复为默认处理动作。于是,如果我们希... 阅读全文

posted @ 2014-11-05 23:19 lienhua34 阅读(893) 评论(0) 推荐(0) 编辑

UNIX环境编程学习笔记(24)——信号处理进阶学习之信号集和进程信号屏蔽字
摘要:lienhua342014-11-031 信号传递过程信号源为目标进程产生了一个信号,然后由内核来决定是否要将该信号传递给目标进程。从信号产生到传递给目标进程的流程图如图 1 所示,图 1: 信号产生、传递到处理的流程图进程可以阻塞信号的传递。当信号源为目标进程产生了一个信号之后,内核会执行依次执行... 阅读全文

posted @ 2014-11-03 22:51 lienhua34 阅读(3087) 评论(1) 推荐(0) 编辑

UNIX环境编程学习笔记(23)——信号处理初步学习
摘要:lienhua342014-10-291 信号的概念维基百科中关于信号的描述是这样的:在计算机科学中,信号(英语:Signals)是 Unix、类 Unix 以及其他 POSIX 兼容的操作系统中进程间通讯的一种有限制的方式。它是一种异步的通知机制,用来提醒进程一个事件已经发生。当一个信号发送给一个... 阅读全文

posted @ 2014-10-30 00:20 lienhua34 阅读(2488) 评论(2) 推荐(0) 编辑

UNIX环境编程学习笔记(22)——进程管理之system 函数执行命令行字符串
摘要:lienhua342014-10-15ISO C 定义了 system 函数,用于在程序中执行一个命令字符串。其声明如下,#include int system(const char *cmdstring);system 函数在其实现中调用了 fork、exec 和 waitpid 函数。syste... 阅读全文

posted @ 2014-10-16 22:49 lienhua34 阅读(1650) 评论(0) 推荐(0) 编辑

UNIX环境编程学习笔记(21)——进程管理之获取进程终止状态的 wait 和 waitpid 函数
摘要:lienhua342014-10-12当一个进程正常或者异常终止时,内核就向其父进程发送 SIGCHLD信号。父进程可以选择忽略该信号,或者提供一个该信号发生时即被调用的函数(信号处理程序)。对于这种信号的系统默认动作是忽略它。在文档“进程控制三部曲”中,我们讲的第三部曲是使用 wait 函数来获取... 阅读全文

posted @ 2014-10-12 23:30 lienhua34 阅读(3176) 评论(0) 推荐(1) 编辑

UNIX环境编程学习笔记(20)——进程管理之exec 函数族
摘要:lienhua342014-10-07在文档“进程控制三部曲”中,我们提到 fork 函数创建子进程之后,通常都会调用 exec 函数来执行一个新程序。调用 exec 函数之后,该进程就将执行的程序替换为新的程序,而新的程序则从 main 函数开始执行。UNIX 提供了 6 种不同的 exec 函数... 阅读全文

posted @ 2014-10-07 15:11 lienhua34 阅读(3391) 评论(0) 推荐(0) 编辑

UNIX环境编程学习笔记(19)——进程管理之fork 函数的深入学习
摘要:lienhua342014-10-07在“进程控制三部曲”中,我们学习到了 fork 是三部曲的第一部,用于创建一个新进程。但是关于 fork 的更深入的一些的东西我们还没有涉及到,例如,fork 创建的新进程与调用进程之间的关系、父子进程的数据共享问题等。fork 是否可以无限制的调用?如果不行的... 阅读全文

posted @ 2014-10-07 01:41 lienhua34 阅读(2948) 评论(0) 推荐(1) 编辑

UNIX环境编程学习笔记(18)——进程管理之进程控制三部曲
摘要:lienhua342014-10-051 进程控制三部曲概述UNIX 系统提供了 fork、exec、exit 和 wait 等基本的进程控制原语。通过这些进程控制原语,我们即可完成对进程创建、执行和终止等基本操作。进程的控制可以划分为三部曲,• 第一部:fork 创建新进程。• 第二部:exec ... 阅读全文

posted @ 2014-10-05 19:26 lienhua34 阅读(2516) 评论(1) 推荐(1) 编辑

UNIX环境编程学习笔记(17)——进程管理之进程的几个基本概念
摘要:lienhua342014-10-051 main 函数是如何被调用的?在编译 C 程序时,C 编译器调用链接器在生成的目标可执行程序文件中,设置一个特殊的启动例程为程序的起始地址。当内核执行 C 程序时,在调用 main 前先调用这个特殊的启动例程,该启动例程从内核取得命令行参数和环境变量值。2 ... 阅读全文

posted @ 2014-10-05 12:56 lienhua34 阅读(1315) 评论(0) 推荐(1) 编辑

UNIX环境编程学习笔记(16)——进程管理之进程环境变量
摘要:lienhua342014-10-031 环境表和环境指针在每个进程启动时,都会接到一张环境表。环境表是一个字符指针数组,其中每个指针包含一个以 null 结束的 C 字符串的地址。全局变量environ 则包含了该指针数组的地址,extern char **environ;例如,图 1 显示了包含... 阅读全文

posted @ 2014-10-03 21:31 lienhua34 阅读(2902) 评论(0) 推荐(1) 编辑

UNIX环境编程学习笔记(15)——进程管理之进程终止
摘要:lienhua342014-10-021 进程的终止方式进程的终止方式有 8 种,其中 5 种为正常终止,它们是1. 从 main 返回。2. 调用 exit。3. 调用_exit 或_Exit。4. 最后一个线程从其启动例程返回。5. 最后一个线程调用pthread_exit。另外三种为异常终止方... 阅读全文

posted @ 2014-10-02 22:02 lienhua34 阅读(1938) 评论(0) 推荐(0) 编辑

UNIX环境编程学习笔记(14)——文件I/O之临时文件
摘要:lienhua342014-10-01ISO C 标准 I/O 库提供了个两个函数 tmpnam 和 tmpfile 以帮助创建临时文件,#include char *tmpnam(char *ptr);返回值:指向唯一路径名的指针tmpnam 函数产生一个与现有文件名不同的一个有效路径名字符串。每... 阅读全文

posted @ 2014-10-01 15:56 lienhua34 阅读(568) 评论(0) 推荐(0) 编辑

UNIX环境编程学习笔记(13)——文件I/O之标准I/O流
摘要:lienhua342014-09-291 标准 I/O 流之前学习的都是不带缓冲的 I/O 操作函数,直接针对文件描述符的,每调用一次函数可能都会触发一次系统调用,单次调用可能比较快捷。但是,对于需要频繁进行 I/O 操作的程序,频繁触发系统调用产生的消耗太大。标准 I/O 库提供了带缓冲的 I/O... 阅读全文

posted @ 2014-10-01 12:44 lienhua34 阅读(1408) 评论(0) 推荐(0) 编辑

UNIX环境编程学习笔记(12)——文件I/O之目录操作
摘要:lienhua342014-09-181 引言在 UNIX 系统中,目录是一种特殊的文件类型。我们可以使用 open 函数来打开目录,获取文件描述符,然后调用 stat 函数来获取目录的属性信息,但是我们却不能够使用 read 函数来读取目录内容。例如,下面例子所示,#include #includ... 阅读全文

posted @ 2014-09-19 20:50 lienhua34 阅读(1677) 评论(0) 推荐(0) 编辑

UNIX环境编程学习笔记(11)——文件I/O之文件时间以及 utime 函数
摘要:lienhua342014-09-161 文件的时间每个文件都有三个时间字段,如表 1 所示。表 1: 文件的三个时间字段说明字段st_atime文件数据的最后访问时间st_mtime文件数据的最后修改时间st_ctimei 节点状态的最后更改时间最后修改时间是文件内容最后一次被修改的时间。更改状态... 阅读全文

posted @ 2014-09-16 21:41 lienhua34 阅读(2007) 评论(0) 推荐(0) 编辑

UNIX环境编程学习笔记(10)——文件I/O之硬链接和符号链接
摘要:lienhua342014-09-151 文件系统数据结构UNIX 文件系统通过 i 节点来存储文件的信息。如图 1 所示为一个磁盘柱面上的 i 节点和数据块示意图。其中 i 节点是一个固定长度的记录项,它包含了有关文件的大部分信息。数据块用于存储文件的实际内容。每个文件的 i 节点会记录该文件的内... 阅读全文

posted @ 2014-09-15 21:42 lienhua34 阅读(2589) 评论(2) 推荐(2) 编辑

UNIX环境编程学习笔记(9)——文件I/O之文件访问权限的屏蔽和更改
摘要:lienhua342014-09-101 文件访问权限在文件访问权限和进程访问控制中,我们已经讲述过文件访问权限位,为了方便,我们重新列在下面,表 1: 文件的 9 个访问权限位st_mode 屏蔽意义S_IRUSR用户 -读S_IWUSR用户 -写S_IXUSR用户 -执行S_IRGRP组 -读S... 阅读全文

posted @ 2014-09-10 22:20 lienhua34 阅读(1624) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 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 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示