Somewhere between 4.1.1 and 4.2.3, the return value from pclose changed.
The exit status used to be in the second byte, so that the status would be (pclose($fp)/256).
It is now in the low-order byte, so the status is just pclose($fp).
Be careful.
pclose
(PHP 4, PHP 5)
pclose — Closes process file pointer
Description
int pclose ( resource $handle )Closes a file pointer to a pipe opened by popen().
The file pointer must be valid, and must have been returned by a successful call to popen().
Returns the termination status of the process that was run.
See also popen().
pclose
kcross at nssolutions dot com
16-Jul-2003 09:08
16-Jul-2003 09:08
vdweij at mailsurf dot com
12-Mar-2003 03:18
12-Mar-2003 03:18
As I understand pclose will return 0 (on every platform) in case popen could not execute the specified command.
Since popen only returns the status wether it was able to send a command and not wether it was succesfully executed. Only the returned value of pclose can be used to check wether a command could be executed.
roel at bouwman dot net
07-Oct-1999 05:23
07-Oct-1999 05:23
The return value of pclose() is not the exit status of the program, but a value as returned by waitpid() of wait4().
To obtain the exit status:
$ret=(pclose($f)>>8)&0xFF;
