ms c++ get pid of current process
Asked Answered
M

3

36

Parts of my application are in C++ under windows. I need the process id for the current process. Any thoughts?

Mercier answered 18/11, 2008 at 9:34 Comment(2)
I first read it as "get rid of current process" :)Pemphigus
@Pemphigus made me look in vocabularyCaprifoliaceous
E
51

The GetCurrentProcessId function will do this.

Elyn answered 18/11, 2008 at 9:35 Comment(2)
There is also _getpid() - msdn.microsoft.com/en-us/library/t2y34y40%28v=vs.80%29.aspxRenal
_getpid() just calls GetCurrentProcessId(). There is only one process id, and the lowest level function that returns it is GetCurrentProcessId().Elyn
S
7

Having grown accustomed to seeing yards and yards of code to accomplish seemingly straightforward tasks, I was pleasantly surprised at the directness of GetCurrentProcessId. Earlier today, I watched it run in a debugger, when I was following a new bit of code in a DllMain routine that combines the process ID with an embedded GUID to create a locally unique name for a mutex.

Following is the entire routine, all three machine instructions.

mov         eax,fs:[00000018]
mov         eax,dword ptr [eax+20h]
ret

BTW, two other blessedly simple Windows API functions are GetLastError and SetLastError; indeed, both are quite similar to this one.

Sorption answered 28/1, 2015 at 3:5 Comment(1)
I forgot to mention in that "short, sweet" group is GetProcessHeap.Sorption
I
2

You can use getpid() or _getpid() , which are defined in <process.h> library.

https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/getpid?view=vs-2019

Incommunicable answered 6/9, 2020 at 18:4 Comment(2)
As Greg Hewgill already mentioned under the accepted answer, _getpid() just calls GetCurrentProcessId(), which is the lowest level function that returns the process id.Wellspring
Actually before I write this answer, I tried GetCurrentProcessId() but I couldn't run it, because I had not included <windows.h> library, which was not mentioned in the previous answer. After some tries I got it.Incommunicable

© 2022 - 2024 — McMap. All rights reserved.