?? test.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 + -