Igor Pechtchanski schrieb:
On Sun, 6 Feb 2005, Reini Urban wrote:
I feel quite stupid now, but found nothing simple.
How to get the winpid from the current process in cygwin's perl?

$$ is the cygwin pid which is different from the windows pid
GetCurrentProcessId().

winpid = cygwin_internal(CW_CYGWIN_PID_TO_WINPID, pid) ?

Sure, but in any perl API?

There's apparently a new libwin32@perl.org list,
the [EMAIL PROTECTED] list is almost unmaintained for some years now.


We will check out there where this cygwin specific functionality
will go to.
Win32::Process::CygwinToWin32ProcessID() is my suggestion.

.pm:
=item Win32::Process::CygwinToWin32ProcessID($pid)

Returns the windows process ID for the given cygwin pid.
On non-cygwin platforms it will return the $pid argument without translation.


=item Win32::Process::Win32ToCygwinProcessID($pid)

Returns the cygwin process ID for the given windows pid.
On non-cygwin platforms it will return the $pid argument without translation.


.xs:
DWORD
CygwinToWin32ProcessID(pid)
    DWORD pid
CODE:
#ifdef __CYGWIN__
    RETVAL = cygwin_internal(CW_CYGWIN_PID_TO_WINPID, pid);
#else
    RETVAL = pid;
#endif
OUTPUT:
    RETVAL

DWORD
Win32ToCygwinProcessID(pid)
    DWORD pid
CODE:
#ifdef __CYGWIN__
    RETVAL = (DWORD)cygwin32_winpid_to_pid(pid);
#else
    RETVAL = pid;
#endif
OUTPUT:
    RETVAL

--
Reini Urban
http://xarch.tu-graz.ac.at/home/rurban/

Reply via email to