I wrote a simple snippet to list processes name and pid on windows. but the output returns a strange line. below is the code: > > > > use strict; use warnings;
use Inline C => DATA => LIBS => '-luser32 -lkernel32 -lpsapi'; my $a = process_list(); map { print; print get_proc_name($_);print "\n"; } @{$a}; __END__ __C__ #include <windows.h> #include <stdio.h> #include <tchar.h> #include <psapi.h> char* get_proc_name( int processID ) { TCHAR szProcessName[MAX_PATH] = TEXT("<unknown>"); HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processID ); if (NULL != hProcess ) { HMODULE hMod; DWORD cbNeeded; if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod), &cbNeeded) ) { GetModuleBaseName( hProcess, hMod, szProcessName, sizeof(szProcessName)/sizeof(TCHAR) ); } } CloseHandle( hProcess ); return szProcessName; } SV* process_list(){ DWORD aProcesses[1024], cbNeeded, cProcesses; unsigned int i; EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ); cProcesses = cbNeeded / sizeof(DWORD); AV* AV_procs = newAV(); for ( i = 0; i < cProcesses; i++ ) { if( aProcesses[i] != 0 ) { av_push(AV_procs, newSViv( aProcesses[i] ) ); } } return newRV_inc(AV_procs); } __OUTPUT__ C:\>perl test.pl 4P ?F > <== strange line 292<unknown> 372<unknown> 432<unknown> Any helps? TIA