daemon程序中printf的问题

pkusa 2007-11-01 10:58:34
CODE:
void daemon_init()
{
int i;
pid_t pid;

if((pid = fork()) != 0)
{
exit(0);
}
setsid();

signal(SIGHUP,SIG_IGN);
if((pid = fork()) != 0)
{
exit(0);
}

chdir("/");
umask(0);
//for(i = 0;i <= 2;i++)
//close(i);
}
如果注释掉for循环printf的输出可以打印在屏幕

在调用daemon_init之后 进程已经不再拥有控制终端 怎么还是能输出?
...全文
167 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
thehunters 2007-11-01
  • 打赏
  • 举报
回复
什么系统?
  • 打赏
  • 举报
回复
我记得也是没有关闭 输出的描述符
飞哥 2007-11-01
  • 打赏
  • 举报
回复
没有关闭文件描述符,进程有到标准输入输出的"句柄" 应该就可以输出把


这个不大懂
飞哥 2007-11-01
  • 打赏
  • 举报
回复
我回答错了:9
飞哥 2007-11-01
  • 打赏
  • 举报
回复
打印到文件
lbaby 2007-11-01
  • 打赏
  • 举报
回复
看看这个帖?

http://topic.csdn.net/u/20070406/09/5b33df4f-2c87-4a8f-8585-3618d4c29ada.html


如果用daemon形式的话,可以把0,1,2都dup2到/dev/null

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧