zoukankan      html  css  js  c++  java
  • 写守护进程时碰到open函数的参数,没记住

    今天写一个最简单的守护进程,

    要成为一个守护进程,其实很简单了。主要步骤就4步:

    1,创建进程。

    2,父进程退出。

    3,成为会话的头领进程。

    4,将工作目录改成根目录,并把标准输入输出重定向到空设备。

     在第4步代码:

                                if(!noclose)
                    {
                            int fd;
                            fd=open("/dev/null",O_RDWR,0);
                            if(fd!=-1)
                            {
                                    dup2(fd,STDIN_FILENO);
                                    dup2(fd,STDOUT_FILENO);
                                    dup2(fd,STDERR_FILENO);
                                    if(fd>2)
                                            close(fd);
                            }
                    }
                    

    写入"/dev/null"的内容将会被系统丢掉,从而对stdin/stdout/stderr今次那个保护。

    对参数S_RDWR,没记住。

    在此列下:

    O_RDONLY 只读打开。
    O_WRONLY 只写打开。
    O_RDWR 读、写打开。
    O_APPEND 每次写时都加到文件的尾端。
    O_CREAT 若此文件不存在则创建它。使用此选择项时,需同时说明第三个参数mode,用其说明该新文件的存取许可权位。
    O_EXCL 如果同时指定了O_CREAT,而文件已经存在,则出错。这可测试一个文件是否存在,如果不存在则创建此文件成为一个原子操作
    O_TRUNC 如果此文件存在,而且为只读或只写成功打开,则将其长度截短为0。
    O_NOCTTY 如果p a t h n a m e指的是终端设备,则不将此设备分配作为此进程的控制终端。
    O_NONBLOCK 如果p a t h n a m e指的是一个F I F O、一个块特殊文件或一个字符特殊文件,则此选择项为此文件的本次打开操作和后续的I / O操作设置非阻塞方式。
    O_SYNC 使每次w r i t e都等到物理I / O操作完成。
    这些控制字都是通过“或”符号分开(|)
  • 相关阅读:
    IE6常见CSS解释BUG及hack
    超链接标签a
    图片标签img
    如何让一个元素始终在窗口水平垂直居中
    display属性及属性值
    设置省略号
    如何让一个图片垂直居中
    post与get的区别
    绝对路径与相对路径
    数组的操作方法
  • 原文地址:https://www.cnblogs.com/zhangyabin---acm/p/3322015.html
Copyright © 2011-2022 走看看