使用C ++ Boost我正在创建一个命令行应用程序。 出于某种原因,我需要启动可执行文件的命令提示符的PID。 可执行文件是用C ++编写的,还有boost和内置的eclipse IDE
答案 0 :(得分:1)
您的应用程序无法知道创建它的进程的PID。
如果您正在寻找当前流程的PID,请查看ms c++ get pid of current process(因为您显然在Windows上运行)。
如果您正在寻找父进程的PID,唯一的解决方案是让父进程将其作为参数传递给子进程:
argv[1]
获取父级的PID。或者,您可以尝试这样做:当您的程序运行时,cmd.exe
窗口标题会被更改,并让程序名称显示在其中(命令正在运行)。因此,如果在代码中执行与tasklist /v /fo csv | findstr /i "myprogram"
等效的操作,输出将显示正在运行的cmd.exe进程的PID。
>tasklist /v /fo csv | findstr /i "myprogram"
"cmd.exe","44372","Console","1","4 900 Ko","Running","DOMAIN\USER","0:00:00","cmd.exe - myprogram"
请注意,如果启动了许多程序,您将无法知道谁是谁。但如果只有一个有效,那就应该做到这一点。