博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux Linux程序练习十七
阅读量:5140 次
发布时间:2019-06-13

本文共 1757 字,大约阅读时间需要 5 分钟。

小结:使用fputs()向文件写入数据,要想实时看到结果,需要使用fflush清空缓冲区
/* * 题目:编写一个守护进程,每隔3秒钟将当前时间写入文件time.log, * 要求:不能使用init_daemon系统调用。 * */#include 
#include
#include
#include
#include
#include
#include
#include
void gettime_now(char *ptime){ time_t tdata = 0; //获取当前系统时间 time(&tdata); //定义时间结构体变量 struct tm *eventtime = NULL; //将time_t类型转成struct tm指针类型 eventtime = localtime(&tdata); //tm_year表示年份,从1900开始 int t_year = eventtime->tm_year + 1900; //月份,月份从0开始 int t_mon = eventtime->tm_mon + 1; //日 int t_day = eventtime->tm_mday; //小时 int t_hour = eventtime->tm_hour; //分 int t_min = eventtime->tm_min; //秒 int t_sec = eventtime->tm_sec; sprintf(ptime, "%d-%d-%d %d:%d:%d\n", t_year, t_mon, t_day, t_hour, t_min, t_sec);}int main(void){ pid_t pid = fork(); if (pid == -1) { perror("fork() err"); return -1; } if (pid == 0) { //创建新的会话期 setsid(); //设置当前目录为根目录 chdir("/"); //设置目录权限 umask(0); close(STDERR_FILENO); close(STDIN_FILENO); FILE *pfa = NULL; pfa = fopen("/home/test/1/time.log", "a"); if (pfa == NULL) { perror("fopen() err"); return -1; } //每隔3秒 int seconds = 0; while (1) { seconds = 3; do { seconds = sleep(seconds); } while (seconds > 0); //获取当前时间 char timearr[50] = { 0 }; gettime_now(timearr); strcat(timearr," \t\t打印时间\n\n"); printf("%s",timearr); //写入文件 fputs(timearr, pfa); //刷新缓冲区 fflush(pfa); } } else if (pid > 0) { exit(0); } return -1;}
.SUFFIXES:.c .oCC=gccSRCS=hello.cOBJS=$(SRCS:.c=.o)EXEC=serSRCS1=tec01.cOBJS1=$(SRCS1:.c=.o)EXEC1=cltstart:$(OBJS) $(OBJS1)    $(CC) -o $(EXEC) $(OBJS)    $(CC) -o $(EXEC1) $(OBJS1)    @echo "^_^-----OK------^_^".c.o:    $(CC) -Wall -g -o $@ -c $

 

转载于:https://www.cnblogs.com/zhanggaofeng/p/6185131.html

你可能感兴趣的文章
Linux-以指定用户运行redis
查看>>
Linux-socket的close和shutdown区别及应用场景
查看>>
初探Oracle全栈虚拟机---GraalVM
查看>>
移动端的点击滚动逻辑实现。
查看>>
xpath
查看>>
parted分区
查看>>
抛出错误
查看>>
Can't play local SWF file in Media Player
查看>>
图片标签img
查看>>
JavaScript语言中文参考手册.chm
查看>>
表哥的Access入门++以Excel视角快速学习数据库知识pdf
查看>>
day29 jq
查看>>
TC 配置插件
查看>>
关于异步reset
查看>>
索引优先队列的工作原理与简易实现
查看>>
并发编程简介
查看>>
C++两水杯量出所需水量的小算法
查看>>
基于K-近邻分类算法的手写识别系统
查看>>
使用easyui的form提交表单,在IE下出现类似附件下载时提示是否保存的现象
查看>>
PC站跳转M站的方法
查看>>