国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
dirent結(jié)構(gòu) --文件夾相關(guān) - lizzy115的日志 - 網(wǎng)易博客

stat(由文件描述詞取得文件狀態(tài))

相關(guān)函數(shù)

statfstatchmodchownreadlink,utime

表頭文件

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

定義函數(shù)

int lstat (const char * file_name.struct stat * buf);

函數(shù)說(shuō)明

lstat()stat()作用完全相同,都是取得參數(shù)file_name所指的文件狀態(tài),其差別在于,當(dāng)文件為符號(hào)連接時(shí),lstat()會(huì)返回該link本身的狀態(tài)。詳細(xì)內(nèi)容請(qǐng)參考stat()

返回值

執(zhí)行成功則返回0,失敗返回-1,錯(cuò)誤代碼存于errno。

范例

參考stat()。
 

 

 

 


opendir
(打開(kāi)目錄)

相關(guān)函數(shù)

openreaddir,closedir,rewinddirseekdir,telldir,scandir

表頭文件

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

定義函數(shù)

DIR * opendir(const char * name);

函數(shù)說(shuō)明

opendir()用來(lái)打開(kāi)參數(shù)name指定的目錄,并返回DIR*形態(tài)的目錄流,和open()類似,接下來(lái)對(duì)目錄的讀取和搜索都要使用此返回值。

返回值

成功則返回DIR* 型態(tài)的目錄流,打開(kāi)失敗則返回NULL。

錯(cuò)誤代碼

EACCESS 權(quán)限不足
EMFILE
已達(dá)到進(jìn)程可同時(shí)打開(kāi)的文件數(shù)上限。
ENFILE
已達(dá)到系統(tǒng)可同時(shí)打開(kāi)的文件數(shù)上限。
ENOTDIR
參數(shù)name非真正的目錄
ENOENT
參數(shù)name 指定的目錄不存在,或是參數(shù)name 為一空字符串。
ENOMEM
核心內(nèi)存不足。
 

 

 


readdir
(讀取目錄)

相關(guān)函數(shù)

open,opendirclosedir,rewinddir,seekdir,telldirscandir

表頭文件

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

定義函數(shù)

struct dirent * readdir(DIR * dir);

函數(shù)說(shuō)明

readdir()返回參數(shù)dir目錄流的下個(gè)目錄進(jìn)入點(diǎn)。
結(jié)構(gòu)dirent定義如下
struct dirent
{
ino_t d_ino;
ff_t d_off;
signed short int d_reclen;
unsigned char d_type;
har d_name[256];
};
d_ino
此目錄進(jìn)入點(diǎn)的inode
d_off
目錄文件開(kāi)頭至此目錄進(jìn)入點(diǎn)的位移

d_reclen _name
的長(zhǎng)度,不包含NULL字符
d_type d_name
所指的文件類型
d_name
文件名

返回值

成功則返回下個(gè)目錄進(jìn)入點(diǎn)。有錯(cuò)誤發(fā)生或讀取到目錄文件尾則返回NULL

附加說(shuō)明

EBADF參數(shù)dir為無(wú)效的目錄流。

范例

#include<sys/types.h>
#include<dirent.h>
#include<unistd.h>
main()
{
DIR * dir;
struct dirent * ptr;
int i;
dir =opendir(“/etc/rc.d”);
while((ptr = readdir(dir))!=NULL)
{
printf(“d_name: %sn”,ptr->d_name);
}
closedir(dir);
}


readlink
(取得符號(hào)連接所指的文件)

相關(guān)函數(shù)

statlstat,symlink

表頭文件

#include<unistd.h>

定義函數(shù)

int readlink(const char * path ,char * buf,size_t bufsiz);

函數(shù)說(shuō)明

readlink()會(huì)將參數(shù)path的符號(hào)連接內(nèi)容存到參數(shù)buf所指的內(nèi)存空間,返回的內(nèi)容不是以NULL作字符串結(jié)尾,但會(huì)將字符串的字符數(shù)返回。若參數(shù)bufsiz小于符號(hào)連接的內(nèi)容長(zhǎng)度,過(guò)長(zhǎng)的內(nèi)容會(huì)被截?cái)唷?/span>

返回值

執(zhí)行成功則傳符號(hào)連接所指的文件路徑字符串,失敗則返回-1,錯(cuò)誤代碼存于errno。

錯(cuò)誤代碼

EACCESS 取文件時(shí)被拒絕,權(quán)限不夠
EINVAL
參數(shù)bufsiz 為負(fù)數(shù)
EIO I/O
存取錯(cuò)誤。
ELOOP
欲打開(kāi)的文件有過(guò)多符號(hào)連接問(wèn)題。
ENAMETOOLONG
參數(shù)path的路徑名稱太長(zhǎng)
ENOENT
參數(shù)path所指定的文件不存在
ENOMEM
核心內(nèi)存不足
ENOTDIR
參數(shù)path路徑中的目錄存在但卻非真正的目錄。

 

 

 

remove(刪除文件)

相關(guān)函數(shù) link,rename

表頭文件

#include<stdio.h>

定義函數(shù)

int remove(const char * pathname);

函數(shù)說(shuō)明

remove()會(huì)刪除參數(shù)pathname指定的文件。如果參數(shù)pathname為一文件,則調(diào)用unlink()處理,若參數(shù)pathname為一目錄,則調(diào)用rmdir()來(lái)處理。請(qǐng)參考unlink()rmdir()。

返回值

成功則返回0,失敗則返回-1,錯(cuò)誤原因存于errno。

錯(cuò)誤代碼

EROFS 欲寫入的文件存在于只讀文件系統(tǒng)內(nèi)
EFAULT
參數(shù)pathname指針超出可存取內(nèi)存空間
ENAMETOOLONG
參數(shù)pathname太長(zhǎng)
ENOMEM
核心內(nèi)存不足
ELOOP
參數(shù)pathname有過(guò)多符號(hào)連接問(wèn)題
EIO I/O
存取錯(cuò)誤。
 

 

 


rename
(更改文件名稱或位置)

相關(guān)函數(shù)

link,unlink,symlink

表頭文件

#include<stdio.h>

定義函數(shù)

int rename(const char * oldpath,const char * newpath);

函數(shù)說(shuō)明

rename()會(huì)將參數(shù)oldpath 所指定的文件名稱改為參數(shù)newpath所指的文件名稱。若newpath所指定的文件已存在,則會(huì)被刪除。

返回值

執(zhí)行成功則返回0,失敗返回-1,錯(cuò)誤原因存于errno

范例

/* 設(shè)計(jì)一個(gè)DOS下的rename指令rename 舊文件名新文件名*/
#include <stdio.h>
void main(int argc,char **argv)
{
if(argc<3){
printf(“Usage: %s old_name new_namen”,argv[0]);
return;
}
printf(“%s=>%s”,argc[1],argv[2]);
if(rename(argv[1],argv[2]<0)
printf(“error!n”);
else
printf(“ok!n”);
}
 

 

 


rewinddir
(重設(shè)讀取目錄的位置為開(kāi)頭位置)

相關(guān)函數(shù)

open,opendir,closedirtelldir,seekdir,readdirscandir

表頭文件

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

定義函數(shù)

void rewinddir(DIR *dir);

函數(shù)說(shuō)明

rewinddir()用來(lái)設(shè)置參數(shù)dir 目錄流目前的讀取位置為原來(lái)開(kāi)頭的讀取位置。

返回值

 

錯(cuò)誤代碼

EBADF dir為無(wú)效的目錄流

范例

#include<sys/types.h>
#include<dirent.h>
#include<unistd.h>
main()
{
DIR * dir;
struct dirent *ptr;
dir = opendir(“/etc/rc.d”);
while((ptr = readdir(dir))!=NULL)
{
printf(“d_name :%sn”,ptr->d_name);
}
rewinddir(dir);
printf(“readdir again!n”);
while((ptr = readdir(dir))!=NULL)
{
printf(“d_name: %sn”,ptr->d_name);
}
closedir(dir);
}

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Linux C :遍歷輸出指定目錄下的所有文件
Linux下DIR,dirent,stat等結(jié)構(gòu)體詳解
在Linux下和Windows下遍歷目錄的方法及如何達(dá)成一致性操作
[轉(zhuǎn)載]C語(yǔ)言中關(guān)于對(duì)目錄的操作
opendir 、readdir 小結(jié)
Linux C函數(shù)之文件及目錄函數(shù)(2)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服