我正在使用一个运行linux的嵌入式系统.当我在forground中运行已编译的C程序时,它可以正常工作.但是,当我在程序调用后添加"&"时,要使其在后台运行,某些功能无法正常工作.停止工作的主要功能是使用'read'函数(unistd.h),用于从套接字读取.
在后台运行进程是否会降低其权限?还有什么可能导致这种行为?
编辑:该功能使用'select'和'read'功能从用于接收CANbus消息帧的套接字读取.收到数据后,我们会对其进行分析并将字符串"回显"为.txt文件,以充当数据记录器.在前台运行时,会创建文件并成功添加,但在后台时,不会创建/追加文件.
在后台前台运行进程之间的唯一区别是与终端的交互.
通常,当您对某个进程进行后台处理时,它将stdin断开连接(它不再从键盘读取输入),并且您无法再向该进程发送键盘快捷键信号,如Ctrl-C/Ctrl-D.
除此之外没有任何变化,没有任何权限或优先级被更改.