執行以下代碼,生成唯一的UID
$fp = popen("/xxx/bin/tools/uuidgen system", "r");// $uid = fread($fp, 40960); pclose($uid);
問題:返回結果$uid為空。實際上執行popen函數後能夠返回內容 resource(39) of type (stream)
。
resource popen ( string
$command
, string $mode
)
參數:$command 命令,$mod 模式。
打開一個指向進程的管道,該進程由派生給定的 command 命令執行而產生。
如果未找到要執行的命令,會返回一個合法的資源,它允許訪問shell返回的任何錯誤信息。
/* 加入重定向以得到標准錯誤輸出 stderr。 */
$fp = popen("/xxx/bin/tools/uuidgen system 2>&1", "r");
這樣,會看到輸出錯誤 error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory
表示系統不知道libcurl.so放在哪個目錄下。
解決辦法:
在/etc/ld.so.conf中加入libcurl.so所在的目錄。
一般so檔案會在/usr/local/lib這個目錄下(用戶可以自定義目錄),所以在/etc/ld.so.conf中加入/usr/local/lib(或用戶自定義的目錄)這一行,
最後,保存/etc/ld.so.conf,執行命令[root@www]# /sbin/ldconfig -v才能生效。
參考:http://blog.csdn.net/kangear/article/details/9141481