C语言编写linux下的守护进程
利用
下载的这段代码,成功实现了守护进程,原来守护进程是很简单的事情。
在main函数中执行
init_daemon();//初始化为Daemon
就可以把进程变成守护进程
#include
#include
#include
#include
#include
void
init_daemon(void
)
{
int
pid;
int
i;
if
(pid=fork())
exit
(0);//是父进程,结束父进程
else
if
(pid< 0)
exit
(1);//fork失败,退出
//是第一子进程,后台继续执行
setsid();//第一子进程成为新的会话组长和进程组长
//并与控制终端分离
if
(pid=fork())
exit
(0);//是第一子进程,结束第一子进程
else
if
(pid< 0)
exit
(1);//fork失败,退出
//是第二子进程,继续
//第二子进程不再是会话组长
for
(i=0;i< NOFILE;++i)//关闭打开的文件描述符
close
(i);
chdir("/tmp"
);//改变
工作目录到/tmp
umask(0);//重设文件创建掩模
return
;
}
相关文档:
在linux下一直被无法一下删除很多文件(超过1024)的问题困扰;今天找了一下,发现有一个很简单的解决办法。在terminal中输入
flora03:/scratch/weibinli> find . -name 'Rubidium*' | xargs rm
该命令一下子 将所有以Rubidium开头的文件删除掉。以此类推,应该可以将rm改为cp一次copy大数目的文件。
......
1 经常需要刻录 ISO 文件,cdrecord 可以实现
cdrecord 其实是一个软链接
lrwxrwxrwx 1 root root 5 2009-05-04 22:42 /usr/bin/cdrecord -> wodim
刻录的命令如下:
wodim -v dev=6,0,0 xx.iso # dev 可以用 --scanbus 查看
2 ......
访问Nand Flash时需要先发出命令,然后发出地址序列,最后读/写数据;
需要使用各个信号来分辨命令、地址、数据;
S3C2410 的Nand Flash控制器 提供了相关寄存器来简化这些操作:
& ......
1.引言
C++语言的创建初衷是“a better
C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程
式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++ ......