排序:
默认
按更新时间
按访问量
RSS订阅

Linux下syslog日志函数使用

许多应用程序需要记录它们的活动。系统程序经常需要向控制台或日志文件写消息。这些消息可能指示错误、警告或是与系统状态有关的一般信息。例如,su程序会把某个用户尝试得到超级用户权限但失败的事实记录下来。 通常这些日志信息被记录在系统文件中,而这些系统文件又被保存在专用于此目的的目录中。它可能是/us...

2019-01-05 09:20:04

阅读数 66

评论数 0

UNIX环境编程学习笔记(28)——多线程编程(三):线程的取消

1 取消线程 pthread 提供了pthread_cancel 函数用于请求取消同一进程中的其他线程。 #include int pthread_cancel(pthread_t tid); 返回值:若成功则返回0,否则返回错误编码 pthread_cancel 调用...

2017-09-05 20:22:17

阅读数 88

评论数 0

UNIX环境编程学习笔记(27)——多线程编程(二):控制线程属性

1 线程属性概括 POSIX 线程的主要属性包括 scope 属性、detach 属性、堆栈地址、堆栈大小、优先级。在头文件 pthread.h 中定义了结构体pthread_attr_t 来记录线程的属性。 在创建线程的函数pthread_create 的第二个参数 attr 就是一...

2017-09-05 17:50:12

阅读数 176

评论数 0

UNIX环境编程学习笔记(26)——多线程编程(一):创建和终止线程

在进程控制三部曲中我们学习了进程的创建、终止以及获取终止状态等的进程控制原语。线程的控制与进程的控制有相似之处,在表 1中我们列出了进程和线程相对应的控制原语。 表 1: 进程原语和线程原语的比较 进程原语 线程原语 描述 fork pthrea...

2017-09-05 17:09:55

阅读数 158

评论数 0

UNIX环境编程学习笔记(25)——信号处理进阶学习之 sigaction 函数

sigaction 函数跟 signal 函数一样,用于设置信号处理函数。此函数是用于取代 UNIX 早期版本使用的 signal 函数。UNIX 早期版本的 signal 函数在捕获到一个信号之后,就会自动将该信号的处理动作恢复为默认处理动作。于是,如果我们希望注册的信号处理函数长期生效,则需要...

2017-09-05 16:43:56

阅读数 135

评论数 0

UNIX环境编程学习笔记(24)——信号处理进阶学习之信号集和进程信号屏蔽字

1 信号传递过程 信号源为目标进程产生了一个信号,然后由内核来决定是否要将该信号传递给目标进程。从信号产生到传递给目标进程的流程图如图 1 所示, 图 1: 信号产生、传递到处理的流程图 进程可以阻塞信号的传递。当信号源为目标进程产生了一个信号之后,内核会执行依次执行下面...

2017-09-05 16:11:13

阅读数 145

评论数 0

UNIX环境编程学习笔记(23)——信号处理初步学习

1 信号的概念 维基百科中关于信号的描述是这样的: 在计算机科学中,信号(英语:Signals)是 Unix、类 Unix 以及其他 POSIX 兼容的操作系统中进程间通讯的一种有限制的方式。它是一种异步的通知机制,用来提醒进程一个事件已经发生。当一个信号发送给一个进程,操作系统中断了...

2017-09-05 09:15:16

阅读数 159

评论数 0

UNIX环境编程学习笔记(22)——进程管理之system 函数执行命令行字符串

ISO C 定义了 system 函数,用于在程序中执行一个命令字符串。其声明如下, #include int system(const char *cmdstring); system 函数在其实现中调用了 fork、exec 和 waitpid 函数。system 函数调用...

2017-09-05 08:40:49

阅读数 137

评论数 0

UNIX环境编程学习笔记(21)——进程管理之获取进程终止状态的 wait 和 waitpid 函数

当一个进程正常或者异常终止时,内核就向其父进程发送 SIGCHLD信号。父进程可以选择忽略该信号,或者提供一个该信号发生时即被调用的函数(信号处理程序)。对于这种信号的系统默认动作是忽略它。 在文档“进程控制三部曲”中,我们讲的第三部曲是使用 wait 函数来获取终止子进程的终止状态。那么,...

2017-09-04 18:12:59

阅读数 106

评论数 0

UNIX环境编程学习笔记(20)——进程管理之exec 函数族

在文档“进程控制三部曲”中,我们提到 fork 函数创建子进程之后,通常都会调用 exec 函数来执行一个新程序。调用 exec 函数之后,该进程就将执行的程序替换为新的程序,而新的程序则从 main 函数开始执行。 UNIX 提供了 6 种不同的 exec 函数供我们使用。它们的原型如下所...

2017-09-04 17:29:13

阅读数 104

评论数 0

UNIX环境编程学习笔记(19)——进程管理之fork 函数的深入学习

在“进程控制三部曲”中,我们学习到了 fork 是三部曲的第一部,用于创建一个新进程。但是关于 fork 的更深入的一些的东西我们还没有涉及到,例如,fork 创建的新进程与调用进程之间的关系、父子进程的数据共享问题等。fork 是否可以无限制的调用?如果不行的话,最大限制是多少?另外,我们还...

2017-09-04 16:49:28

阅读数 121

评论数 0

UNIX环境编程学习笔记(18)——进程管理之进程控制三部曲

1 进程控制三部曲概述 UNIX 系统提供了 fork、exec、exit 和 wait 等基本的进程控制原语。通过这些进程控制原语,我们即可完成对进程创建、执行和终止等基本操作。进程的控制可以划分为三部曲, • 第一部:fork 创建新进程。 • 第二部:exec 执行新程序。...

2017-09-04 16:29:49

阅读数 130

评论数 0

UNIX环境编程学习笔记(17)——进程管理之进程的几个基本概念

1 main 函数是如何被调用的? 在编译 C 程序时,C 编译器调用链接器在生成的目标可执行程序文件中,设置一个特殊的启动例程为程序的起始地址。当内核执行 C 程序时,在调用 main 前先调用这个特殊的启动例程,该启动例程从内核取得命令行参数和环境变量值。 2 共享库 共享库...

2017-09-04 15:41:06

阅读数 118

评论数 0

UNIX环境编程学习笔记(16)——进程管理之进程环境变量

1 环境表和环境指针 在每个进程启动时,都会接到一张环境表。环境表是一个字符指针数组,其中每个指针包含一个以 null 结束的 C 字符串的地址。全局变量environ 则包含了该指针数组的地址, extern char **environ; 例如,图 1 显示了包含有 5 个环...

2017-09-04 11:00:35

阅读数 92

评论数 0

UNIX环境编程学习笔记(15)——进程管理之进程终止

1 进程的终止方式 进程的终止方式有 8 种,其中 5 种为正常终止,它们是 1. 从 main 返回。 2. 调用 exit。 3. 调用_exit 或_Exit。 4. 最后一个线程从其启动例程返回。 5. 最后一个线程调用pthread_exit。 ...

2017-09-04 10:03:38

阅读数 102

评论数 0

UNIX环境编程学习笔记(14)——文件I/O之临时文件

ISO C 标准 I/O 库提供了个两个函数 tmpnam 和 tmpfile 以帮助创建临时文件, #include char *tmpnam(char *ptr); 返回值:指向唯一路径名的指针 tmpnam 函数产生一个与现有文件名不同的一个有效路径名字符串。每次调用它...

2017-09-04 09:40:31

阅读数 100

评论数 0

UNIX环境编程学习笔记(13)——文件I/O之标准I/O流

1 标准 I/O 流 之前学习的都是不带缓冲的 I/O 操作函数,直接针对文件描述符的,每调用一次函数可能都会触发一次系统调用,单次调用可能比较快捷。但是,对于需要频繁进行 I/O 操作的程序,频繁触发系统调用产生的消耗太大。 标准 I/O 库提供了带缓冲的 I/O 操作函数,这些函数...

2017-09-03 11:01:15

阅读数 112

评论数 0

UNIX环境编程学习笔记(12)——文件I/O之目录操作

1 引言 在 UNIX 系统中,目录是一种特殊的文件类型。我们可以使用 open 函数来打开目录,获取文件描述符,然后调用 stat 函数来获取目录的属性信息,但是我们却不能够使用 read 函数来读取目录内容。例如,下面例子所示, #include #include #inc...

2017-09-01 13:55:34

阅读数 139

评论数 0

UNIX环境编程学习笔记(11)——文件I/O之文件时间以及 utime 函数

1 文件的时间 每个文件都有三个时间字段,如表 1 所示。 表 1: 文件的三个时间字段 说明 字段 st_atime 文件数据的最后访问时间 st_mtime 文件数据的最后修改时间 st_ctime i...

2017-09-01 10:43:50

阅读数 157

评论数 0

UNIX环境编程学习笔记(10)——文件I/O之硬链接和符号链接

1 文件系统数据结构 UNIX 文件系统通过 i 节点来存储文件的信息。如图 1 所示为一个磁盘柱面上的 i 节点和数据块示意图。其中 i 节点是一个固定长度的记录项,它包含了有关文件的大部分信息。数据块用于存储文件的实际内容。每个文件的 i 节点会记录该文件的内容所占用的数据块信息。 ...

2017-09-01 09:38:03

阅读数 272

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭