易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux中wait用法


Linux中wait用法:
系统中的僵尸进程都要由wait系统调用来回收。
函数原型:
#include<sys/types.h>
#include<sys/wait.h>
pid_t wait(int *status);
进程一旦调用了wait就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一个出现为止。
参数status用来保存被收集进程退出时的一些状态,它是一个指向int类型的指针。但如果我们对这个子进程是如何死掉毫不在意,只想把这个僵尸进程消灭掉,(事实上绝大多数情况下,我们都会这样想),我们就可以设定这个参数为NULL,就像下面这样:
pid = wait(NULL);
如果成功,wait会返回被收集的子进程的进程ID,如果调用进程没有子进程,调用就会失败,此时wait返回-1,同时errno被置为ECHILD。
例子:
/*wait.c*/
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
      
int main()
{
       pid_t pc, pr;
      
       pc = fork();
       if ( pc < 0 ) /* 如果出错 */
  {
         printf("create child prcocess error: %s\n", strerror(errno));
         exit(1);
  }
       else if ( pc == 0) /* 如果是子进程 */
       {
         printf("I am child process with pid %d \n", getpid());
         sleep(3);/* 睡眠3秒钟 */
         exit(0);
  }
       else /* 如果是父进程 */
      &nbs


相关文档:

Linux下Webmin配置

一、用户管理基础
在Linux环境下对用户的管理有多种方式,包括用编辑工具Vi、emacs等对/etc/passwd进行操作或直接使用
addusr、deleusr等用户管理命令以及使用pwconv命令使/etc/passwd与shadow文件保持一致。我们先来看看Linux下用
户管理的常用操作都做了些什么吧。
1、增加用户
增加用户有三个过程:
(1) 在/etc ......

linux线程(转)

 程相关函数:
     pthread_attr_init()
     pthread_attr_setschedpolicy()
     pthread_attr_setschedparam()
     pthread_attr_destroy()
具体应用demo:
pthread_attr_init(&attr);
pthread_attr_setschedpolicy ......

Linux 多线程通信

Linux 多线程通信
Linux 多线程通信
摘自资料(linux 与Windows不同)
    线程间无需特别的手段进行通信,因为线程间可以共享数据结构,也就是一个全局变量可以被两个线程同时使用。不过要注意的是线程间需要做好同步,一般用mutex。可以参考一些比较新的UNIX/Linux编程的书,都会提到Posix线程编程,比如《U ......

Linux下MySQL定期自动备份数据库

MySQL :: Linux 下自动备份数据库的 shell 脚本
Linux 服务器上的程序每天都在更新 MySQL 数据库,于是就想起写一个 shell 脚本,结合 crontab,定时备份数据库。其实非常简单,主要就是使用 MySQL 自带的 mysqldump 命令。
脚本内容如下:
#!/bin/sh
# File: /home/mysql/backup.sh
# Database info
......

Linux的裁剪

http://www.mcublog.com/more.asp?name=sharkdn&id=8810
=======================================
好些时候,我们需要一个只要一张软盘就能启动Linux 的系统,比如说做路由器。但是我们该怎样做呢? 也就是说我们要把Kernel和FileSystem都做在一张3.5'的盘上。我们先把FileSystem 分解成如下几个部分吧。
  1. /b ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号