当我从桌面(Ubuntu 16.04)而不是shell启动程序时,程序与终端没有关联,这个程序的stdin和stdout是什么?程序启动时是STDIN_FILENO
和STDOUT_FILENO
有效的文件描述符吗?在这种情况下printf
写在哪里?
答案 0 :(得分:0)
您可以使用strace
程序查看程序正在执行的所有系统调用(如打开,读取,写入,关闭)。当你将它附加到"桌面程序" (运行程序的那个;使用pstree
或proctree
),你可以看到文件描述符0,1和2会发生什么。
或google for" gnome run program stdout"