mkdir函式用於建立目錄。格式如下:
#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h>
int mkdir(const char *pathname,mode_t mode);
其中引數pathname是新建立目錄的目錄名,mode指定該目錄的訪問許可權,這些位將受到檔案建立方式遮蔽(umask)的修正。
該函式建立一個名為pathname的空目錄,此目錄自動含有“.”和“..”2個登記項。這個新建立目錄的使用者ID被設定為呼叫程式的有效使用者ID,其組則為父目錄的組ID或者程式的有效組ID。
若呼叫成功,mkdir將更新該目錄的st_atime、st_ctime和st_mtime,同時更新其父目錄的st_ctime和st_mtime,然後返回0。若呼叫失敗,mkdir將返回-1.
由pathname指定的新目錄的父目錄必須存在,並且呼叫程式必須具有該父目錄的寫許可權以及pathname涉及的各個分路徑目錄的搜尋許可權。
rndir函式刪除一個空目錄,它的格式如下:
#include<unistd.h>
int rmdir(const char *pathname);
使用rmdir函式時,目錄必須為空,否則呼叫失敗,函式返回-1.成功時,函式返回0.
例子:建立一個新目錄,然後刪除此目錄。
複製程式碼 程式碼如下:
#include<sys/types.h>
#include<unistd.h>
#include<limits.h>
#include<sys/stat.h>
int main(int argc,char *argv[])
{
char path[1000];
char file[1000];
/*
if(argc!=2)
{
printf("Usage mk<pathname>\n");
return 1;
}
*/
argv[1] = "test";
getwd(path); //取得當前工作目錄
printf("current dirctory is:%s\n",path);
if(mkdir(argv[1],S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH)<0)//建立新目錄
{
printf("mkdir failed\n");
return 2;
}
if(chdir(argv[1])<0) //改變當前工作目錄為新目錄
{
printf("chdir failed \n");
return 3;
}
getwd(path);
printf("mkdir successed.\n New current directory is:%s\n",path);
//rmdir(path); //刪除新建目錄
printf("%s is removed\n",path);
return 0;
}