程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> linux下C語言中的mkdir函數與rmdir函數

linux下C語言中的mkdir函數與rmdir函數

編輯:C語言基礎知識

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;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved