Linux进程
文章平均质量分 84
death_kada
这个作者很懒,什么都没留下…
展开
-
Linux系统编程——进程间通信:命名管道(FIFO)
Linux多任务编程系统编程命名管道目录(?)[+]命名管道的概述无名管道,由于没有名字,只能用于亲缘关系的进程间通信(更多详情,请看《无名管道》)。为了克服这个缺点,提出了命名管道(FIFO),也叫有名管道、FIFO 文件。命名管道(FIFO)不同于无名管道之处在于它提供了一个路径名与之关联,以 FIFO 的文件形式存在于文件系统中转载 2015-06-17 13:50:22 · 492 阅读 · 0 评论 -
Linux系统编程——进程间通信:管道(pipe)
Linux多任务编程系统编程无名管道目录(?)[+]管道的概述管道也叫无名管道,它是是 UNIX 系统 IPC(进程间通信) 的最古老形式,所有的 UNIX 系统都支持这种通信机制。无名管道有如下特点:1、半双工,数据在同一时刻只能在一个方向上流动。2、数据只能从管道的一端写入,从另一端读出。3、写入管道中的数转载 2015-06-17 13:49:24 · 593 阅读 · 0 评论 -
Linux系统编程—— fork() 函数详解
2015-04-21 14:54 319人阅读 评论(0) 收藏 举报linux进程fork父子进程需要的头文件:#include #include pid_t fork(void);功能:用于从一个已存在的进程中创建一个新进程,新进程称为子进程,原进程称为父进程。参数:无返回值:转载 2015-06-17 13:39:39 · 341 阅读 · 0 评论 -
Linux 可执行文件结构与进程结构
进程结构进程资源存储类型目录(?)[+]Linux可执行文件结构在 Linux 下,程序是一个普通的可执行文件,以下列出一个二进制可执行文件的基本情况:可以看出,此可执行文件在存储时(没有调入到内容)分为代码区(text)、数据区(data)和未初始化数据区(bss)3 个部分。各段基本内容说明如下:代码区转载 2015-06-17 13:38:14 · 366 阅读 · 0 评论 -
Linux系统编程——进程间通信概述
Linux多任务编程系统编程进程间通信概述进程是一个独立的资源分配单元,不同进程(这里所说的进程通常指的是用户进程)之间的资源是独立的,没有关联,不能在一个进程中直接访问另一个进程的资源(例如打开的文件描述符)。但是,进程不是孤立的,不同的进程需要进行信息的交互和状态的传递等,因此需要进程间通信( IPC:Inter Processes Communicatio转载 2015-06-17 13:47:05 · 341 阅读 · 0 评论 -
Linux系统编程——文件描述符的复制:dup()和dup2()
dup() 和 dup2() 是两个非常有用的系统调用,都是用来复制一个文件的描述符,使新的文件描述符也标识旧的文件描述符所标识的文件。这个过程类似于现实生活中的配钥匙,钥匙相当于文件描述符,锁相当于文件,本来一个钥匙开一把锁,相当于,一个文件描述符对应一个文件,现在,我们去配钥匙,通过旧的钥匙复制了一把新的钥匙,这样的话,旧的钥匙和新的钥匙都能开启这把锁。对比于 dup(),转载 2015-06-17 13:35:08 · 340 阅读 · 0 评论 -
Linux系统编程——Linux系统调用
linux系统调用库函数目录(?)[-]系统调用概述系统调用的实现系统调用和库函数的区别系统调用概述系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务,比如用户可以通过文件系统相关的调用请求系统打开文件、关闭文件或读写文件,可以通过时钟相关的系统调用获得系统时间或设置定转载 2015-06-17 13:25:30 · 404 阅读 · 0 评论 -
Linux系统编程——vfork() 函数详解
inux进程创建系统编程多任务编程所需头文件:#include #include pid_t vfork(void);功能:vfork() 函数和 fork() 函数(fork()如何使用,请点此链接)一样都是在已有的进程中创建一个新的进程,但它们创建的子进程是有区别的。参数:无返回转载 2015-06-17 13:41:05 · 384 阅读 · 0 评论 -
Linux系统编程——进程的介绍
进程我们平时写的 C 语言代码,通过编译器编译,最终它会成为一个可执行程序,当这个可执行程序运行起来后(没有结束之前),它就成为了一个进程。程序是存放在存储介质上的一个可执行文件,而进程是程序执行的过程。进程的状态是变化的,其包括进程的创建、调度和消亡。程序是静态的,进程是动态的。在 Linux 系统中,操作系统是通过进程去完成一个一转载 2015-06-17 13:36:16 · 293 阅读 · 0 评论 -
Linux系统编程——系统调用之 I/O 操作(文件操作)
文件描述符在 Linux 的世界里,一切设备皆文件。我们可以系统调用中 I/O 的函数(I:input,输入;O:output,输出),对文件进行相应的操作( open()、close()、write() 、read() 等)。打开现存文件或新建文件时,系统(内核)会返回一个文件描述符,文件描述符用来指定已打开的文件。这个文件描述符相当于这个已打开文件的标号,文件描述符转载 2015-06-17 13:33:42 · 404 阅读 · 0 评论 -
Linux系统编程——进程间通信:消息队列
Linux多任务编程系统编程消息队列目录(?)[+]概述消息队列提供了一种在两个不相关的进程之间传递数据的简单高效的方法,其特点如下:1)消息队列可以实现消息的随机查询。消息不一定要以先进先出的次序读取,编程时可以按消息的类型读取。2)消息队列允许一个或多个进程向它写入或者读取消息。3)与无名管道、命名管道一样,从消息队列中读出消转载 2015-06-17 13:51:24 · 445 阅读 · 0 评论 -
Linux系统编程——特殊进程之孤儿进程
Linux多任务编程系统编程孤儿进程父进程运行结束,但子进程还在运行(未运行结束)的子进程就称为孤儿进程(Orphan Process)。孤儿进程最终会被 init 进程(进程号为 1 )所收养,并由 init 进程对它们完成状态收集工作。孤儿进程是没有父进程的进程,为避免孤儿进程退出时无法释放所占用的资源而变为僵尸进程(什么是僵尸进程,请看《特殊进程之僵尸进程转载 2015-06-17 13:44:26 · 418 阅读 · 0 评论 -
Linux系统编程——特殊进程之僵尸进程
Linux多任务编程系统编程僵尸进程目录(?)[+]僵尸进程(Zombie Process)进程已运行结束,但进程的占用的资源未被回收,这样的进程称为僵尸进程。在每个进程退出的时候,内核释放该进程所有的资源、包括打开的文件、占用的内存等。 但是仍然为其保留一定的信息,这些信息主要主要指进程控制块的信息(包括进程号、退出状态、运行时间等)。转载 2015-06-17 13:43:25 · 419 阅读 · 0 评论 -
Linux系统编程——进程间通信:信号中断处理
Linux多任务编程系统编程目录(?)[+]什么是信号?信号是 Linux 进程间通信的最古老的方式。信号是软件中断,它是在软件层次上对中断机制的一种模拟,是一种异步通信的方式 。信号可以导致一个正在运行的进程被另一个正在运行的异步进程中断,转而处理某一个突发事件。“中断”在我们生活中经常遇到,譬如,我正在房间里打游戏,突然送快递的来了,转载 2015-06-17 13:48:30 · 709 阅读 · 0 评论 -
Linux系统编程——特殊进程之守护进程
Linux多任务编程系统编程守护进程目录(?)[+]什么是守护进程?守护进程(Daemon Process),也就是通常说的 Daemon 进程(精灵进程),是 Linux 中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是个特殊的孤儿进程,这种进程脱离终端,为什转载 2015-06-17 13:45:16 · 315 阅读 · 0 评论 -
Linux系统编程——进程的控制:结束进程、等待进程结束
Linux多任务编程系统编程进程控制目录(?)[+]结束进程首先,我们回顾一下 C 语言中 continue, break, return 的作用:continue: 结束本次循环break: 跳出整个循环,或跳出 switch() 语句return: 结束当前函数而我们可以通过 exit() 或 _exi转载 2015-06-17 13:41:58 · 742 阅读 · 0 评论 -
Linux系统编程——进程替换:exec 函数族
Linux多任务编程系统编程进程替换exec函数族在 Windows 平台下,我们可以通过双击运行可执行程序,让这个可执行程序成为一个进程;而在 Linux 平台,我们可以通过 ./ 运行,让一个可执行程序成为一个进程。但是,如果我们本来就运行着一个程序(进程),我们如何在这个进程内部启动一个外部程序,由内核将这个外部程序读入内存,使其执行起来成为一个进程呢?这里我转载 2015-06-17 13:46:31 · 398 阅读 · 0 评论