色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

php getcwd源碼

宋博文1年前8瀏覽0評論

PHP是一個廣泛應用于互聯(lián)網(wǎng)開發(fā)的腳本語言。它融合了C語言、Perl語言以及其他特性,支持面向?qū)ο蟮木幊谭绞健T谠撜Z言中,有一種函數(shù)叫做getcwd()。那么,這個函數(shù)源碼具體是什么樣子呢?我們將在本文中來探究一下。

getcwd()定義為獲取當前工作目錄,其原型如下:

string getcwd(void)

上面的代碼片段說明了該函數(shù)無需傳遞任何參數(shù),它會自動幫助我們獲取當前的工作目錄并返回。

下面來看一段示例代碼:

$dir = getcwd();
echo "當前工作目錄為:{$dir}\n";

這段代碼可以自動獲取當然的工作目錄并輸出在終端中。可能大家會有疑問,工作目錄是什么鬼?簡單來說,工作目錄就是當前腳本所執(zhí)行命令時的目錄。通俗點就是,在你終端里打開了一個文件所屬的目錄即是當前腳本所執(zhí)行命令的目錄。比如,我們在桌面上執(zhí)行一個php文件,則當前腳本所執(zhí)行命令時的目錄就是桌面。

getcwd()函數(shù)在系統(tǒng)調(diào)用中用到了getcwd函數(shù),在Linux下它所代表的是一個系統(tǒng)調(diào)用,會返回當前的工作目錄字符串,存放在指定的緩沖區(qū)中。

PHP_FUNCTION(getcwd)
{
char *buf;
size_t size = 1024;
char *ret_buf;
if (zend_parse_parameters_none() == FAILURE) {
return;
}
buf = emalloc(size);
ret_buf = getcwd(buf, size);
if (ret_buf) {
RETVAL_STRING(ret_buf);
} else {
php_error_docref(NULL, E_WARNING, "%s", strerror(errno));
}
efree(buf);
}

上面是getcwd()函數(shù)的源碼,可以看到主要分為以下幾個步驟:

  • 定義參數(shù)和返回值
  • 分配內(nèi)存空間
  • 調(diào)用系統(tǒng)函數(shù),獲取當前的工作目錄串
  • 處理返回值
  • 釋放內(nèi)存空間

最后,需要注意的是,getcwd()函數(shù)只會獲取當前腳本所執(zhí)行命令的目錄,如果切換到了其他目錄,它不會隨之改變,需要重新調(diào)用才能獲取到。