网站项目功能需求清单,开个平台需要多少钱,c 网站开发,网站的登录注册页面怎么做一、书写守护进程
步骤#xff1a;
创建一个孤儿进程创建一个新的会话组修改运行目录到不可卸载的文件系统重设文件权限掩码关闭所有文件描述符
#include stdio.h
#include sys/types.h
#include sys/stat.h
#include unistd.h
int main(i…一、书写守护进程
步骤
创建一个孤儿进程创建一个新的会话组修改运行目录到不可卸载的文件系统重设文件权限掩码关闭所有文件描述符
#include stdio.h
#include sys/types.h
#include sys/stat.h
#include unistd.h
int main(int argc, const char *argv[])
{if(0 fork()){//新建会话组pid_t sid setsid();printf(sid %d\n,sid);//修改运行目录chdir(/);//清空文件权限掩码umask(0);//关闭所有文件描述符for(int i0;igetdtablesize();i)close(i);//书写功能代码while(1){printf(hello\n);sleep(1);}}return 0;
}
二、打印时钟在终端上若终端输入quit结束时钟
#include stdio.h
#include string.h
#include time.h
#include sys/types.h
#include unistd.h
#include wait.h
#include stdlib.h
#include fcntl.h
int main(int argc, const char *argv[])
{//创建管道int pipefd[2];if(pipe(pipefd) 0){perror(pipe);return -1;}char signal[10];pid_t cpid fork();if(cpid 0){close(pipefd[0]); //关闭读端sleep(1);while(1){scanf(%s,signal);write(pipefd[1],signal,sizeof(signal));if(0 strcmp(signal,quit))break;}wait(NULL);}else if(0 cpid){close(pipefd[1]); //关闭写端int flag fcntl(pipefd[0], F_GETFL); //获得原来的属性 flagflag | O_NONBLOCK; //修改flagfcntl(pipefd[0], F_SETFL, flag); time_t t;struct tm *infoNULL;char str[10];while(1){read(pipefd[0],signal,sizeof(signal));if(0 strcmp(signal,quit))exit(0);t time(NULL);info localtime(t);printf(%d-%02d-%02d %02d:%02d:%02d\r,info-tm_year1900,info-tm_mon1,info-tm_mday,info-tm_hour,info-tm_min,info-tm_sec);fflush(stdout);sleep(1);}}return 0;
}