摘要: 在前文中,讲述了一个可靠信号的示例。它分成几个步骤组成( 请参考前文 )。在 Linux 系统编程中,有个方法可以将这些步骤给集成起来,让我们使用起来更加的方便。 那就是调用 sigaction 函数。 阅读全文
posted @ 2017-01-28 22:54 穆晨 阅读(857) 评论(0) 推荐(0) 编辑
摘要: 曾经的 UNIX 系统中,信号的不可靠的。什么是不可靠?就是信号丢失呗。那什么是信号丢失?就是当系统正在处理某个事务的时候,如果收到了某个信号,但它不能及时处理这个信号,那么只能忽略掉此信号。 而在可靠信号机制中,如果发生了上述情况,则要求系统处理完当前的事务后,还能够找回丢失的那个信号。也就是说,要具备本文即将讲述的 - 信号的阻塞功能。 阅读全文
posted @ 2017-01-28 22:50 穆晨 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 前文介绍了最基本的信号接收和处理,但这有无可能带来一些问题呢? 本文将通过两个思考,来分析可能带来的问题以及解决方法。 阅读全文
posted @ 2017-01-28 22:40 穆晨 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 要想掌握 Linux 系统编程,自然要好好学学其信号机制。 本文介绍一个简单的信号接收处理程序,为后面继续深入学习信号机制打下基础。 阅读全文
posted @ 2017-01-28 22:36 穆晨 阅读(652) 评论(0) 推荐(0) 编辑
摘要: 在 Linux 中,一个正在执行的程序往往由各种各样的进程组成,这些进程除了父子关系,还有其他的关系。依赖于这些关系,所有进程构成一个整体,给用户提供完整的服务( 考虑到了终端,即与用户的交互 )。 本文将详细描述 Linux 中的进程结构。 阅读全文
posted @ 2017-01-28 22:31 穆晨 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 在很多时候,创建一个子进程的目的,仅是让它去执行一些其他已经编译好了的程序。 本文将介绍其简单实现方法。 阅读全文
posted @ 2017-01-28 22:28 穆晨 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 如果父进程没有结束,而子进程终止了。那么在父进程调用 wait 函数回收这个子进程或者父进程终止以前,这个子进程将一直是僵尸进程。 本文将提供两种方法处理这个问题。 阅读全文
posted @ 2017-01-28 22:24 穆晨 阅读(2253) 评论(0) 推荐(1) 编辑
摘要: Linux 是多道处理系统,当然能够在同一段时间内处理多个程序。 本文将介绍具体该如何操作。 阅读全文
posted @ 2017-01-28 22:20 穆晨 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 每个进程都有其使用资源的一个限制,这些资源通常是在进程初始化时由进程 0 所建立的,然后由每个后续进程继承。本文将介绍如何获取并修改进程的资源限制。 阅读全文
posted @ 2017-01-28 21:13 穆晨 阅读(551) 评论(0) 推荐(0) 编辑
摘要: 在 UNIX Like 系统中,存有各类系统/应用程序的环境变量,可通过修改之改变系统/应用程序的执行效果;除此之外,用户还可以定义自己的环境变量,供自己写的程序使用。本文将说明如何在程序中设置以及读取这些环境变量。 阅读全文
posted @ 2017-01-28 21:03 穆晨 阅读(671) 评论(0) 推荐(0) 编辑
摘要: C语言程序的执行必定需要耗费一定的资源,也就是说,程序在计算机内部的映像不可能就单单代码。本文将讲解C语言程序在计算机内部的存在方式。 阅读全文
posted @ 2017-01-28 20:59 穆晨 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 在 Linux 中,系统数据文件大都不能直接用编辑的方式读取。如此设计一方面是从安全性考虑,另一方面则是从文件检索效率考虑。本文将以口令文件 passwd 为例讲解读取 Linux 中系统数据文件的方法。 阅读全文
posted @ 2017-01-28 20:54 穆晨 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 在之前,学习了 read write 这样的不带缓冲IO函数。而本文将讲解标准IO库中,带缓冲的IO函数。 阅读全文
posted @ 2017-01-28 20:49 穆晨 阅读(513) 评论(0) 推荐(0) 编辑
摘要: 前文对 Linux 中的权限进行了较为透彻的分析。而本文,则在前文的基础上,具体说明如何在代码中进行权限控制。 阅读全文
posted @ 2017-01-28 20:46 穆晨 阅读(758) 评论(0) 推荐(0) 编辑
摘要: 上篇随笔讲述了Linux中权限的大致实现机制以及目录权限的相关规则。本文将讲解Linux中的三种特殊权限:SUID,SGID,Sticky权限。看完这两篇文章,你一定会对Linux的权限有个更深的认识。 阅读全文
posted @ 2017-01-28 20:41 穆晨 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 在Linux系统中,用户分为三个部分( 所有者 同组人 其他 )。每个部分的权限又可以赋予读/写/执行权限。这样,文件的权限标记一共包含 9 个权限位。好了,很多朋友对于Linux权限的了解就仅限于此了。但,Linux目录权限和文件权限一样吗?内核对于权限的检查过程又是怎样的? 如果你不清楚,本文将为你解惑。 阅读全文
posted @ 2017-01-28 20:38 穆晨 阅读(391) 评论(0) 推荐(0) 编辑
摘要: 在之前的文章中,描述过如何用 fcntl 函数改变文件的状态标记。但,文件还有很多信息,如文件类型,权限设置,设备编号,访问时间等等。如果要获取这些信息,则使用函数 lstat 可以轻松达到这个目的。 下面的程序将使用该函数获取文件类型信息并判断它的类型。 但在这之前,先要说明文件信息结构体和文件类型判定宏。 阅读全文
posted @ 2017-01-28 20:33 穆晨 阅读(1600) 评论(0) 推荐(0) 编辑
摘要: 文件共享是指同时打开一个文件 用 dup 函数能对指定文件描述符再创建一个新的描述符,且这个新的描述符和旧的描述符指向的是同一个文件。 这两种行为有什么区别呢?下面给出的两张文件系统的图形象的解答了这个问题。 阅读全文
posted @ 2017-01-28 20:28 穆晨 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 当打开一个文件的时候,我们需要指定打开文件的模式( 只读,只写等 )。那么在程序中如何获取,修改这个文件的状态标志呢?本文将告诉你如何用 fcntl函数 获取指定文件的状态标志。 阅读全文
posted @ 2017-01-28 20:24 穆晨 阅读(586) 评论(0) 推荐(0) 编辑
摘要: 这段代码错在没有考虑到操作系统中的进程并发。设想,如果有另一个进程在open和creat函数之间也creat了这个文件,那么当本段代码执行到第三行,就会有两个进程同时对文件进行处理,必然导致混乱。 阅读全文
posted @ 2017-01-28 20:14 穆晨 阅读(344) 评论(0) 推荐(0) 编辑