dup2-linux daemon中print问题

问题描述

linux daemon中print问题

在linux中我用deamon(0,0)创建了一个精灵进程,后来我通过消息重定向 输入输出后 printf不能输出东西但是write函数可以不知道是为什么,有高手能给指点一下吗 我主要是想让printf输出,下面是我程序的简要过程
int main(){

daemon(0,0)

while(1)

{

recvmsg();

fd=open("/dev/ttyS0",.....)

dup2(fd,0);

dup2(fd,1);

dup2(fd,2);

printf("dddddddddddddddn");//不可以输出

write(1,"eeeeeeeeeeeeeeeen")//可以输出

}
}

解决方案

参考 linux 守护进程 daemon

另一个问题是Daemon程序不能和终端交互,也就无法使用printf方法输出信息了。我们可以使用syslog机制来实现信息的输出,方便程序的调试。

解决方案二:

精灵程序是不能和终端进行交互的。

解决方案三:

重定向后是可以的 只是现在不好好输出而已

解决方案四:

上面的答案有帮助吗?如果还有问题,请提出来,如果对答案满意,请顶一下,并标记为采纳答案,谢谢!

时间: 2024-09-20 00:17:09

dup2-linux daemon中print问题的相关文章

Linux系统中管理用户和用户组的相关配置文件简介

  Linux 是一个多用户.多任务的操作系统,理解Linux的单用户多任务,多用户多任务; 用户的角色区分: 用户在系统中是分角色的,在Linux 系统中,由于角色不同,权限和所完成的任务也不同;值得注意的是用户的角色是通过UID和识别的,特别是UID;在系统管理中,系统管理员一定要坚守UID 唯一的特性; root 用户:系统唯一,是真实的,可以登录系统,可以操作系统任何文件和命令,拥有最高权限; 虚拟用户:这类用户也被称之为伪用户或假用户,与真实用户区分开来,这类用户不具有登录系统的能力,

如何删除Linux目录中含输入关键字的文件?

如何删除Linux目录中含输入关键字的文件? 我们可以借助find命令来实现: find /mnt/ebook/ -type f -exec grep "在此输入关键字" {} \; -print -exec rm {} \; 示例: find /data0/software/ -type f -exec grep "rlin" {} \; -print -exec rm {} \; 警告:因为有删除操作请小心使用,以免删除错误文件!

Linux系统中如何查看和修改DNS配置

DNS是指计算机域名系统,它由域名解析器和域名服务器组成,提供DNS服务的就是DNS服务器.一般运作中的域名最好有两台或以上的DNS服务器,分别称为主域名服务器和从域名服务器,其中第二个DNS服务器往往用于故障转移.不少用户都不知道该怎么查看和修改DNS,因此小编接下来就给大家介绍下Linux系统中查看和修改DNS配置的方法. 查看服务器的DNS信息: 1:查看/etc/resolv.con文件 [root@localhost ~]# cat /etc/resolv.conf nameserve

深入解析Linux系统中的SELinux访问控制功能

  SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统.NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件.SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到. SELinux 是 2.6 版本的 Linux 内核中提供的强制访问控制

在Linux终端中查看公有IP的方法详解

  首先回顾一下一般的查看IP的命令: ifconfig Linux查看IP地址的命令--ifconfig ifconfig命令用于查看和更改网络接口的地址和参数 $ifconfig -a lo0: flags=849 mtu 8232 inet 127.0.0.1 netmask ff000000 hme0: flags=863 mtu 1500 inet 211.101.149.11 netmask ffffff00 broadcast 211.101.149.255 ether 8:0:2

linux命令中分页等管道符的使用

linux使用命令查看很多东西的时候,一般都会选择使用管道符,要么为了过滤,要么为了分页显示,总之这些管道符有着很重要的作用. 管道 管道简单理解就是,使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推.利用Linux所提供的管道符"|"将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入. grep命令 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全

《编译与反编译技术》—第1章1.8节UNIX/Linux环境中的make和makefile

本节书摘来自华章出版社<编译与反编译技术>一书中的第1章,第1.8节UNIX/Linux环境中的make和makefile ,作者庞建民,陶红伟,刘晓楠,岳峰,更多章节内容可以访问"华章计算机"公众号查看. 1.8 UNIX/Linux环境中的make和makefile 在UNIX或Linux环境中,make是一个非常重要和经常使用的编译工具.无论是自己进行项目开发还是安装应用软件,都会经常用到make或make install.使用make工具,可以将大型的开发项目分解成

linux shell 中 2>&amp;amp;1的含义_linux shell

linux shell 中"2>&1"的含义 脚本: nohup /mnt/Nand3/H2000G  >/dev/null  2>&1  & 对于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出到文件描述符2(STDERR_FILENO),其后果就是文件描述符1和2指向同一个文件表项,也可以说错误的输出

Linux系统中bash shell编程的10个基础问题讲解_linux shell

第1问:为何叫做shell?在介绍 shell 是什么东西之前,不妨让我们重新审视使用者与电脑的关系.我们知道电脑的运作不能离开硬件,但使用者却无法直接对硬件作驱动,硬件的驱动只能透过一个称为"操作系统(Operating System)"的软件来控管,事实上,我们每天所谈的linux,严格来说只是一个操作系统,我们称之为"核心(kernel)".然而,从使用者的角度来说,使用者也没办法直接操作kernel,而是透过kernel的"外壳"程序,也