⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.c

📁 本程序旨在向大家介绍linux下进程的知识。
💻 C
字号:
#include <unistd.h>
#include <sys/stat.h>
#include <sys/param.h>
#include <sys/types.h>
#include <signal.h>

void init_daemon(void)
{
   pid_t pid;
   int   i;
  
   if ((pid = fork())==-1)  /*生成第1个子进程*/
   	exit(1);     /* fork失败退出 */
	   
   if (pid > 0)
	exit(0);     /* 父进程退出,使shell成为前台进程*/ 

   setsid();   /* 第1子进程成为新会话和新进程组的领头进程的同时也失去控制终端*/
   
   if ((pid = fork())==-1)  /* 由第1个子进程生成子进程 */
        exit(1);     /* 第1个子进程fork失败,程序退出*/
   if(pid>0)
        exit(0);     /* 第1个子进程退出*/

   /* 第2子进程执行下面的操作 */
   for(i=0;i<NOFILE;++i)
        close(i);   /* 关闭已打开的文件描述符 */
   chdir("/rundir"); /*改变当前运行的目录*/
   umask(0);       /*改变文件创建掩码*/
   return;
}



#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void init_daemon(void);

main()
{
FILE *fp;
FILE *p;
char buf[256];

init_daemon(); 

while(1)
{
  sleep(30);
  if((fp=fopen("test.log", "a"))>=0)
  {
    p=popen("ps -f","r");
    while(fgets(buf,sizeof(buf),p)!=0)
    fprintf(fp,"%s\n",buf);
   pclose(p);
  }
 fclose(fp);
}
}








⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -