PHP是一種十分強大的編程語言,廣泛應用于網絡開發(fā)領域。PHP的優(yōu)點之一是它的良好可移植性,在許多主流操作系統(tǒng)上都可以運行,比如Windows,Linux,Unix等等。
在Linux和Unix操作系統(tǒng)環(huán)境下,Php提供了很多系統(tǒng)編程接口,方便開發(fā)者操縱和管理進程、用戶、文件等等。其中,posix模塊是Php中處理進程或用戶的一個標準模塊,同時也支持其他的POSIX操作,比如打開文件描述符、鎖文件、讀取和修改文件權限、信號等。
下載posix模塊
php posix模塊默認是沒有安裝的,需要下載后安裝。posix模塊支持Php 5和7版本,可以從官網上下載帶有posix支持的版本。我們仍然可以通過如下代碼檢查posix模塊的支持:
:if (function_exists('posix_kill')) { echo "POSIX is supported on this platform\n"; }
如果運行這段代碼返回數(shù)據(jù),那說明posix模塊已經正確安裝。
posix函數(shù)
posix模塊提供了很多有用的系統(tǒng)調用函數(shù),能夠極大的提高我們的開發(fā)效率。例如:
echo posix_getpid(); // 輸出當前進程的PID
它可以方便的獲取當前進程的PID,然后我們可以根據(jù)這個PID繼續(xù)執(zhí)行其他的進程操作。
posix_setsid (); // 將當前進程設置為會話組長,斷開與控制臺的聯(lián)系,這個很有用,比如后臺運行進程
這個函數(shù)將啟用一個完全獨立的會話,與用戶的控制臺無關,為后臺進程通常使用。可能我們會創(chuàng)建一個服務器后臺進程,那 posix_setsid() 就能很好的幫我們解決這個問題。
posix_getpwuid ( posix_getuid () ); // 獲取當前用戶信息,UID是用戶ID,對照/etc/passwd文件。
posix_getpwuid() 函數(shù)能夠用UID來獲取當前登錄用戶的相關信息,只要知道目標UID,就能在/ect/passwd 查到有關這個用戶的所有信息。
總結
作為一種Unix-like系統(tǒng)標準的POSIX語言庫,posix在Php中發(fā)揮了廣泛的作用。通過開發(fā)posix模塊,Php使開發(fā)者更便捷的操作系統(tǒng)文件、進程和用戶等多種系統(tǒng)元素。這些操作雖然是基礎操作,但是對于系統(tǒng)編程來說卻是必不可少的,這些操作也是Linux和Unix OS一些著名命令的基礎,比如su、ls、ps等,通過這些系統(tǒng)函數(shù)我們也能更好的理解和使用類似Linux的操作系統(tǒng)。