如何在C++中实现os.getpid()?

0 投票
4 回答
913 浏览
提问于 2025-04-15 19:14

我是新手。我正在尝试写一个C++程序,从Python创建的命名管道中读取数据。我的问题是,Python创建的命名管道的名字里用到了os.getpid()这个函数的返回值。当我在C++中调用这个管道时,我使用的是getpid(),但是得到的值和Python里不一样。请问C++中有没有和os.getpid()等效的函数?

谢谢!

补充:

抱歉,我其实是用os.getpid()来获取会话ID,然后通过ProcessIDtoSessionID()函数来得到会话ID。接着我把这个会话ID用作管道名字的一部分。

4 个回答

0

标准库里只提供了文件相关的功能,其他的东西你需要用一些特定于操作系统的接口来实现。

2

如果你在不同的进程中运行,你不会得到相同的值,因为每个进程都有自己独特的进程ID。你需要找其他方法来识别这个管道。

4

你不会得到相同的进程ID,因为你的Python程序和C++程序是在不同的进程中运行的,所以它们有不同的进程ID。因此,通常要用不同的逻辑来给你的FIFO文件命名。

撰写回答