如何在不使用命令行的情况下以跨平台方式在 C 和 C++ 中从给定的父进程 ID 获取子进程 ID 列表?我自己在下面提供了一个答案,其中涵盖了 Win32、macOS、Linux、FreeBSD、DragonFly BSD 和 Darwin,使用 C++。
随意将我的代码转换为 C 解决方案(根据需要以及本机 API 或 POSIX),或者使用不同的 API 或方法提供您自己的解决方案,但不使用 popen() 或 system() 之类的东西。添加对更多平台的支持显然也是受欢迎的。
例如:其他*BSD、Solaris、移动平台等。
Display XOpenDisplay(0) 和 XOpenDisplay(NULL) 有什么区别?
#include <X11/Xlib.h>
struct MwmHints
{
unsigned long flags;
unsigned long functions;
unsigned long decorations;
long input_mode;
unsigned long status;
};
enum
{
MWM_HINTS_FUNCTIONS = (1L << 0),
MWM_HINTS_DECORATIONS = (1L << 1),
MWM_FUNC_ALL = (1L << 0),
MWM_FUNC_RESIZE = (1L << 1),
MWM_FUNC_MOVE = (1L << 2),
MWM_FUNC_MINIMIZE = (1L << 3),
MWM_FUNC_MAXIMIZE = (1L << 4),
MWM_FUNC_CLOSE = (1L << 5)
};
extern "C"
{
void borderless(Window window)
{
Display *display = XOpenDisplay(0);
Atom …Run Code Online (Sandbox Code Playgroud)