本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.只让你进程调用 accept,然后把所接受的已连接套接字“传递”给某个子进程。
这样做就不用因为所有子进程都调用 accept 而需提供上锁保护
2.父进程必须跟踪子进程的忙闲状态,以便给空闲子进程传递新的套接字
typedef struct {
pid_t ...
分类:
其他好文 时间:
2014-08-26 13:46:56
阅读次数:
154
杀死进程最安全的方法是单纯使用kill命令,不加修饰符,不带标志。首先使用ps-ef命令确定要杀死进程的PID,然后输入以下命令:#kill-pid注释:标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程..
分类:
其他好文 时间:
2014-08-26 03:12:35
阅读次数:
201
引言 先看以下两个信号量: 13)SIGPIPE 当管道读端关闭,再往管道写东西,会发出SIGPIPE信号 17)SIGCHLD 子进程退出会向父进程发出SIGCHLD信号,系统默认处理是忽略掉该信号 代码 /*********************************************...
分类:
系统相关 时间:
2014-08-26 01:46:05
阅读次数:
311
对于两个程序之间的进行交互式本程序主要通过父进程创建两个子进程,通过管道来实现,和两人无序对话的功能一样。只要逻辑清晰,并不难。共需要pipe(有名管道)六根,功能为用于读、写,为了使逻辑清晰,方便讨论,以下1、2、3分别代表程序1、2、3之间的管道,分别对程序之间的管道进项讨论分析:ABC1-2w...
分类:
系统相关 时间:
2014-08-23 01:03:49
阅读次数:
293
实现一个自己的shell解释器,其原理比较简单,首先获取用户的输入,通过fork()函数获取两个进程(父子进程),子进程通过execvp()函数继续进行,此时父进程一直在等待子进程的结束,待都结束了就执行了一次shell解释。 1 /*================================...
分类:
系统相关 时间:
2014-08-22 02:42:25
阅读次数:
307
linux上进程有5种状态:1. 运行(正在运行或在运行队列中等待)2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)5. ...
分类:
其他好文 时间:
2014-08-20 16:12:52
阅读次数:
273
1、什么是僵尸进程?僵尸进程是指子进程比父进程先结束,而父进程却没有回收子进程,释放子进程占用的资源。僵尸进程也一直在进程表中占着一个slot,但进程表容量有限,defunct进程不仅占用系统资源,还影响系统性能,如果其数目较多还可能导致系统瘫痪。这里有个形象的解释:..
分类:
系统相关 时间:
2014-08-20 14:32:13
阅读次数:
250
当一个进程正常或异常终止的时候,内核就像其父进程发送SIGCHLD信号,因为子进程是个异步事件,所以这种信号也是内核给那个父进程发的异步通知。父进程可以选择忽略该信号,或者提供一个该信号发生时即被调用执行的函数。对于这种信号的系统默认动作是忽略它。调用wait或waitpid的进程可能会发生什么情况...
分类:
编程语言 时间:
2014-08-18 10:29:54
阅读次数:
228
第五章的内容,实现一个echo服务器和对应的客户端,主要收获:0. TCP socket编程主要基本步骤1. SIGCHLD信号含义(子进程退出时向父进程发送,提醒父进程对其状态信息进行一个获取),waitpid 和 wait在使用上的差异,前者可以配置参数设定为非阻塞方式调用,更加灵活。2. 信号...
分类:
系统相关 时间:
2014-08-17 15:26:12
阅读次数:
337
说明:当进程是会话的领头进程时setsid()调用失败并返回(-1)。setsid()调用成功后,返回新的会话的ID,调用setsid函数的进程成为新的会话的领头进程,并与其父进程的会话组和进程组脱离。由于会话对控制终端的独占性,进程同时与控制终端脱离。 pid_t pid = fork(); .....
分类:
其他好文 时间:
2014-08-10 21:32:30
阅读次数:
329