cat*_*eof 1 c c++ linux
我有一个在Linux系统上运行的简单C/CPP进程.这是a.out.
另一个进程能够在其代码中启动a.out.这是b.out.
在a.out中我需要什么代码才能理解它是从命令行执行的?例如./a.out
有没有办法知道它是从cmd开始还是从另一个进程启动?
Fre*_*Foo 6
您无法一般性地查找程序是否"从命令行"(通过用户的显式命令)启动,但您可以查看其标准输入和输出是否与终端/命令窗口通信:
#include <unistd.h> isatty(fileno(stdin))
并stdout返回标准输入/标准输出是否为端子.
stdout
如果您需要知道启动程序的进程,请使用getppid系统调用获取父进程ID(ppid),然后读取伪文件/proc/ppid/cmdline.
getppid
/proc/
/cmdline
归档时间:
15 年,8 月 前
查看次数:
308 次
最近记录: