簡體   English   中英

c ++檢查Unix中是否存在目錄,如果存在,則調用void函數。

[英]c++ Checking if a directory exists in Unix and call void function if it exists.

因此,我試圖實現linux命令rm -rf,而在我的主機中我有類似以下內容:

struct stat sb;
if(unlink(argv[i]) == 0)
{
    printf (argv[i]); printf(" Deleted\n");
}
if (S_ISDIR(sb.st_mode))
{   
    remove_dir(argv[i]);
}
else 
{
    perror(argv[i]);
}

我想做的是,如果用戶輸入是目錄,則調用void remove_dir();。 刪除目錄,而是只顯示argv [i]是否為目錄。 任何建議將非常有幫助。

您需要使用stat函數填充struct stat sb

struct stat sb;
if (stat(argv[i], &sb) != 0) 
{
    perror(argv[i]);
}

然后,直到那時,您才能使用S_ISDIR(sb.st_mode)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM