在没有fork/exec、popen()和system()的情况下获取linux信息 我想知道如何在没有使用Foe/EXEC、PONEN()和StUngReSe():< /P>的情况下从C++获得以下Linux系统信息 获取启动进程的命令字符串(名称) 给定进程id 向进程发送信号 捕获并显示我的程序接收到的所有信号 获取任何给定进程名称的进程id

在没有fork/exec、popen()和system()的情况下获取linux信息 我想知道如何在没有使用Foe/EXEC、PONEN()和StUngReSe():< /P>的情况下从C++获得以下Linux系统信息 获取启动进程的命令字符串(名称) 给定进程id 向进程发送信号 捕获并显示我的程序接收到的所有信号 获取任何给定进程名称的进程id,c++,linux,process,system,C++,Linux,Process,System,如有任何提示,将不胜感激 非常感谢您抽出时间 进程的主要功能接收该位 杀死-即 见2 棘手,需要我思考 进程的主要功能接收该位 杀死-即 见2 棘手,需要我思考 进程的主要功能接收该位 杀死-即 见2 棘手,需要我思考 进程的主要功能接收该位 杀死-即 见2 棘手,需要我思考 我相信1)的信息包含在/proc/PID/cmdline中 如果需要当前进程,可以在不知道pid时使用/proc/self/-handy。我对C++不了解很多,但是在C中,你可以使用开放的和读取的系统来避免它。 我认为许多

如有任何提示,将不胜感激

非常感谢您抽出时间

  • 进程的主要功能接收该位
  • 杀死-即
  • 见2
  • 棘手,需要我思考
  • 进程的主要功能接收该位
  • 杀死-即
  • 见2
  • 棘手,需要我思考
  • 进程的主要功能接收该位
  • 杀死-即
  • 见2
  • 棘手,需要我思考
  • 进程的主要功能接收该位
  • 杀死-即
  • 见2
  • 棘手,需要我思考
  • 我相信1)的信息包含在/proc/PID/cmdline中

    如果需要当前进程,可以在不知道pid时使用/proc/self/-handy。我对C++不了解很多,但是在C中,你可以使用开放的和读取的系统来避免它。 我认为许多其他答案也可以通过操纵/proc条目来实现。I beleive/proc/PID/status告诉您指定的PID也已捕获、阻止和忽略的信号

    编辑:考虑更多4)您可以递归地循环/proc中的pid条目以查找给定的进程名称-这是我唯一可以想到的不使用fork的方法(从代码中调用“ps”,因为其他建议需要fork/exec)。您避免使用fork有什么特别的原因吗?

    我相信1)的信息包含在/proc/PID/cmdline中

    如果需要当前进程,可以在不知道pid时使用/proc/self/-handy。我对C++不了解很多,但是在C中,你可以使用开放的和读取的系统来避免它。 我认为许多其他答案也可以通过操纵/proc条目来实现。I beleive/proc/PID/status告诉您指定的PID也已捕获、阻止和忽略的信号

    编辑:考虑更多4)您可以递归地循环/proc中的pid条目以查找给定的进程名称-这是我唯一可以想到的不使用fork的方法(从代码中调用“ps”,因为其他建议需要fork/exec)。您避免使用fork有什么特别的原因吗?

    我相信1)的信息包含在/proc/PID/cmdline中

    如果需要当前进程,可以在不知道pid时使用/proc/self/-handy。我对C++不了解很多,但是在C中,你可以使用开放的和读取的系统来避免它。 我认为许多其他答案也可以通过操纵/proc条目来实现。I beleive/proc/PID/status告诉您指定的PID也已捕获、阻止和忽略的信号

    编辑:考虑更多4)您可以递归地循环/proc中的pid条目以查找给定的进程名称-这是我唯一可以想到的不使用fork的方法(从代码中调用“ps”,因为其他建议需要fork/exec)。您避免使用fork有什么特别的原因吗?

    我相信1)的信息包含在/proc/PID/cmdline中

    如果需要当前进程,可以在不知道pid时使用/proc/self/-handy。我对C++不了解很多,但是在C中,你可以使用开放的和读取的系统来避免它。 我认为许多其他答案也可以通过操纵/proc条目来实现。I beleive/proc/PID/status告诉您指定的PID也已捕获、阻止和忽略的信号

    编辑:考虑更多4)您可以递归地循环/proc中的pid条目以查找给定的进程名称-这是我唯一可以想到的不使用fork的方法(从代码中调用“ps”,因为其他建议需要fork/exec)。你避免使用叉子有什么特别的原因吗

  • 从main,您可以打印argv[0]。但这并不总是有帮助,因为由于对fork/exec的调用,启动程序可能会被一个新的程序替换
  • 您需要使用kill命令行程序或kill系统调用
  • 检查手册页中的操作
  • 我假设您指的是可执行文件名。您可以执行以下操作,可能无法在所有Unix系统上工作,但应在Linux上工作。 ps-ef | grep“程序名”| awk'{print$2}'
  • 从main,您可以打印argv[0]。但这并不总是有帮助,因为由于对fork/exec的调用,启动程序可能会被一个新的程序替换
  • 您需要使用kill命令行程序或kill系统调用
  • 检查手册页中的操作
  • 我假设您指的是可执行文件名。您可以执行以下操作,可能无法在所有Unix系统上工作,但应在Linux上工作。 ps-ef | grep“程序名”| awk'{print$2}'
  • 从main,您可以打印argv[0]。但这并不总是有帮助,因为由于对fork/exec的调用,启动程序可能会被一个新的程序替换
  • 您需要使用kill命令行程序或kill系统调用
  • 检查手册页中的操作
  • 我假设您指的是可执行文件名。您可以执行以下操作,可能无法在所有Unix系统上工作,但应在Linux上工作。 ps-ef | grep“程序名”| awk'{print$2}'
  • 从main,您可以打印argv[0]。但这并不总是有帮助,因为由于对fork/exec的调用,启动程序可能会被一个新的程序替换
  • 您需要使用kill命令行程序或kill系统调用
  • 检查手册页中的操作
  • 我假设您指的是可执行文件名。您可以执行以下操作,可能不能在所有Unix系统上工作,但应该