mkdir() - Unix、Linux 系統呼叫 - 技術教學
Tutorials Point


  Unix 初學者指南
  Unix Shell 程式設計
  高階 Unix
  Unix 有用參考
  Unix 有用資源
  精選閱讀

版權所有 © 2014 tutorialspoint



  首頁     參考     討論論壇     關於 TP  

mkdir() - Unix、Linux 系統呼叫


previous next AddThis Social Bookmark Button

廣告

名稱

mkdir - 建立目錄

語法

#include <sys/stat.h> 
#include <sys/types.h> 

int mkdir(const char *pathname, mode_t mode);

描述

mkdir() 嘗試建立一個名為 pathname 的目錄。

引數 mode 指定要使用的許可權。它以通常的方式由程序的 umask 修改:建立的目錄的許可權為 (mode & ~umask & 0777)。建立的目錄的其他模式位取決於作業系統。對於 Linux,請參見下文。

新建立的目錄將由程序的有效使用者 ID 擁有。如果包含檔案的目錄設定了 set-group-ID 位,或者如果檔案系統以 BSD 組語義掛載,則新目錄將繼承其父級的組所有權;否則,它將由程序的有效組 ID 擁有。

如果父目錄設定了 set-group-ID 位,則新建立的目錄也將設定該位。

返回值

mkdir() 在成功時返回零,如果發生錯誤則返回 -1(在這種情況下,errno 將被相應地設定)。

錯誤

標籤描述
EACCES 父目錄不允許程序寫入許可權,或者 pathname 中的一個或多個目錄不允許搜尋許可權。(另請參見 path_resolution(2)。)
EEXIST pathname 已經存在(不一定是作為目錄)。這包括 pathname 是符號連結(無論是否懸空)的情況。
EFAULT pathname 指向您可訪問的地址空間之外。
ELOOP 在解析 pathname 時遇到太多符號連結。
ENAMETOOLONG
  pathname 太長。
ENOENT pathname 中的目錄元件不存在或是一個懸空的符號連結。
ENOMEM 核心記憶體不足。
ENOSPC 包含 pathname 的裝置沒有足夠的空間容納新目錄。
ENOSPC 由於使用者的磁碟配額已用盡,因此無法建立新目錄。
ENOTDIR
 pathname 中用作目錄的元件實際上不是目錄。
EPERM 包含 pathname 的檔案系統不支援建立目錄。
EROFS pathname 指的是隻讀檔案系統上的檔案。

符合標準

SVr4、BSD、POSIX.1-2001。

備註

在 Linux 下,除了許可權位之外,只考慮 S_ISVTX 模式位。也就是說,在 Linux 下,建立的目錄實際上具有模式 (mode & ~umask & 01777)。另請參見 stat(2)。

NFS 底層協議中存在許多不完善之處。其中一些會影響 mkdir()。

參見



previous next Printer Friendly

廣告


  

廣告



廣告
© . All rights reserved.