導航:首頁 > 操作系統 > linuxdtype

linuxdtype

發布時間:2023-05-17 09:20:36

linux C 中的文件夾遍歷dirent d_type表明該文件的類型 跪求~~~

enum

{

DT_UNKNOWN = 0,

# define DT_UNKNOWN DT_UNKNOWN

DT_FIFO = 1,

# define DT_FIFO DT_FIFO

DT_CHR = 2,

# define DT_CHR DT_CHR

DT_DIR = 4,

# define DT_DIR DT_DIR

DT_BLK = 6,

# define DT_BLK DT_BLK

DT_REG = 8,

# define DT_REG DT_REG

DT_LNK = 10,

# define DT_LNK DT_LNK

DT_SOCK = 12,

# define DT_SOCK DT_SOCK

DT_WHT = 14

# define DT_WHT DT_WHT

};

這是d_type的枚舉類型..........每個值表示一個類型..........4是目錄,0是未知,1是管道,2是字元設備,8表示文件...............6是塊設備..........其他的都如字面表示..........很容易區分.........

❷ linux 中find命令下的「-type f 」代表什麼意思

-type 是根據文件類型進行查找,f 代表一個普通格式的文件
其他的還有:

d :目錄
l :符號鏈接
b :塊設備
c :字元設備
p :管道文件
s :Socket

❸ Linux裡面type -a命令作用是什麼

Linux中的pwd全稱print working directory的縮寫,列印當前工作目錄,就是顯示當前所在目錄的意思。
通常提示符中就顯示有當前目錄,但是它只顯示目錄名而不是全路徑,比如當前目錄是/usr/local/etc和當前目錄是/etc,提示符中都顯示etc,這個時候用pwd命令就可以看清楚到底是哪個路徑,這就是這個命令的作用。

❹ linux常用命令有哪些

linux 常用命令有:

❺ Linux下怎麼讀取多個進程的信息

首先說說DIR這一棗掘結構體,以下為DIR結構體的定義:

struct __dirstream
{
void *__fd;
char *__data;
int __entry_data;
char *__ptr;
int __entry_ptr;
size_t __allocation;
size_t __size;
__libc_lock_define (, __lock)
};

typedef struct __dirstream DIR;

DIR結構體類似於FILE,是一個內部結構,以下幾個函數用這個內部結構保存當前正在被讀取的目錄的有關信息(摘自《UNIX環境高級編程(第二版)》)。函數 DIR *opendir(const char *pathname),即打開文件目錄,返回的就是指向DIR結構體的指針,而該指針由以下幾個函數使用:

struct dirent *readdir(DIR *dp);

void rewinddir(DIR *dp);

int closedir(DIR *dp);

long telldir(DIR *dp);

void seekdir(DIR *dp,long loc);

關於DIR結構,我們知道這么多就可以了,沒必要去再去研究他的結構成員。
接著是dirent結構體,首先我們要弄清楚目錄文件(directory file)的概念:這種文件包含了其他文件的名字以及指向與這些文件有關的信息的指針(摘自《UNIX環境高級編程(第二版)》)。從定義能夠看出,dirent不僅僅指向目錄,還指向目錄中的具體文件,readdir函數同樣也橘岩豎讀取目錄下的文件,這就是證據。以下為dirent結構體的定義:

struct dirent
{
long d_ino; /* inode number 索引節點號 */

off_t d_off; /* offset to this dirent 在目錄文件中的偏移 */

unsigned short d_reclen; /* length of this d_name 文件名長 */

unsigned char d_type; /* the type of d_name 文件類型 */

char d_name [NAME_MAX+1]; /* file name (null-terminated) 文件名,最長255字元 */
}

然後是怎麼使用它讀取進程信息。可以用這些函數來讀取/proc下的文件夾,然後做一個判斷,只要文件夾的名字開頭是1-9的,就進入目錄讀取其中的status文件,然圓大後輸出信息。

代碼

#include <stdio.h>
#include <dirent.h>
#include <unistd.h>
#include <stdlib.h>

typedef struct{
pid_t pid;
char name[256];//進程名稱
int vmsize;//虛擬內存信息
}proc_info_st;//保存讀取的進程信息

#define PROC_NAME_LINE 1//名稱所在行
#define PROC_PID_LINE 4//pid所在行
#define PROC_VMSIZE_LINE 12//虛擬內存所在行
#define BUFF_LEN 1024 //行緩沖區的長度

#ifndef TRUE
# define TRUE 1
#endif

#ifndef FALSE
# define FALSE 0
#endif

void read_proc(proc_info_st* info,const char* c_pid);//讀取進程信息
int read_line(FILE* fp,char* buff,int b_l,int l);//讀取一行

int main()
{
//打開目錄
DIR *dir;
struct dirent *ptr;
if (!(dir = opendir("/proc")))
return 0;
//讀取目錄
while (ptr = readdir(dir))
{//循環讀取出所有的進程文件
if (ptr->d_name[0] > '0' && ptr->d_name[0] <= '9')
{
//獲取進程信息
proc_info_st info;
read_proc(&info,ptr->d_name);//讀取信息
printf("pid:%d\npname:%s\nvmsize:%d\n",info.pid,info.name,info.vmsize);
printf("\n\n");//再空兩行
}
}
}

/**************************************************
**說明:根據進程pid獲取進程信息,存放在proc_info_st結構體中
**
**輸入:
** /proc_info_st* info 返回進程信息
** /char* c_pid 進程pid的字元串形式
**
**
**
*************************************************/
void read_proc(proc_info_st* info,const char* c_pid)
{
FILE* fp = NULL;
char file[512] = {0};
char line_buff[BUFF_LEN] = {0};//讀取行的緩沖區

sprintf(file,"/proc/%s/status",c_pid);//讀取status文件
if (!(fp = fopen(file,"r")))
{
printf("read %s file fail!\n",file);
return;
}

char name[32];
//先讀取進程名稱
if (read_line(fp,line_buff,BUFF_LEN,PROC_NAME_LINE))
{
sscanf(line_buff,"%s %s",name,(info->name));
}

fseek(fp,0,SEEK_SET);//回到文件頭部
//讀取進程pid
if (read_line(fp,line_buff,BUFF_LEN,PROC_PID_LINE))
{
sscanf(line_buff,"%s %d",name,&(info->pid));
}

fseek(fp,0,SEEK_SET);//回到文件頭部
//讀取進程vmsize
if (read_line(fp,line_buff,BUFF_LEN,PROC_VMSIZE_LINE))
{
sscanf(line_buff,"%s %d",name,&(info->vmsize));
}

fclose(fp);

}

/**************************************************
**說明:讀取文件的一行到buff
**
**輸入:
** /FILE* fp 文件指針
** /char* buff 緩沖區
** /int b_l 緩沖區的長度
** /l 指定行
**
**輸出:
** /true 讀取成功
** /false 讀取失敗
*************************************************/
int read_line(FILE* fp,char* buff,int b_l,int l)
{
if (!fp)
return FALSE;

char line_buff[b_l];
int i;
//讀取指定行的前l-1行,轉到指定行
for (i = 0; i < l-1; i++)
{
if (!fgets (line_buff, sizeof(line_buff), fp))
{
return FALSE;
}
}

//讀取指定行
if (!fgets (line_buff, sizeof(line_buff), fp))
{
return FALSE;
}

memcpy(buff,line_buff,b_l);

return TRUE;
}
如果你想更深入的了解一些東西可以參考下http://www.linuxprobe.com/chapter-09.html,希望能對你有幫助

❻ linux 判斷一個目錄是不是為空的

while(dq = readdir(dir)){
if(strcmp(dq->d_name,".")==0||strcmp(dq->d_name,"..")==0)
continue;//這里可以忽略"."和".."
else if(dq->d_type == DT_DIR){
printf("目錄:%s\n",dq->d_name);
char buf[256]={};
sprintf(buf,"%s/%s",path,dq->d_name);
rmdir(buf);
del_dir(buf);
}

else
printf("文件:%s\n",dq->d_name);
}這里是遍歷整個目錄的代碼
給我13億個贊,不要多

❼ Linux裡面find加不加type區別是什麼

題主你好,

給題主舉個例子吧,從例子中看起來更直觀.

我在當前目錄中新建了一個文件夾叫A,一個文件叫abcd, 又在A這個文件夾下新建了另一個abcd的文件夾,下面是目錄結構:

-----

希望可以幫到題主,歡迎追問.

❽ 在linux環境下有沒有一個可以查看文件屬性(只讀啊,許可權,大小什麼的)的函數

用chmod,用法為
chmod 許可權代碼 文件名
許可權代碼主要為三位,每一位都遵循:
r = 4
w = 2
x = 1
- = 0
其中r為讀,w為寫,x為執行,若有多個屬性,則相加。如6表示有讀寫許可權,7表示有讀寫執行許可權。
而三位的順序是:所有者、組群、其他人
chmod 646 文件名
應該滿足您的要求。

❾ 編寫Linux C程序

先給你列出stu2主目錄的文件信息這個功能的功能代碼:
#include
<unistd.h>

#include
<dirent.h>

#include
<亂耐悄stdlib.h>

#include
<stdio.h>
void
read_dir()///==ls

{

char
buf[255];

buf=「你的stu2目錄的
絕對路徑
」;

DIR
*dirp;

struct
dirent
*direntp;

dirp
=
opendir(buf);

if(
dirp
!=
NULL
)

{

for(;;)

{

direntp
=
readdir(
dirp
);

if(
direntp
==
NULL
)
break;

if(DT_DIR
==
direntp->d_type)
printf(
"%s,%s",direntp->d_name,"
"
);

}

printf("\n");

closedir(
dirp
);

}

}
然後嘩渣在你主函數畝山裡面調用一下試試。

❿ struct dirent結構中d_type的用法

struct stat buf;
stat(file,buf);//file 為你需要讀的文件 int型的參數
if(S_ISREG(buf.st_mode))
printf("普通文件");
另外就是你可悉汪氏以去找找struct stat這個結構體裡面的成員。其中st_mode成員為判斷文件類型。下面是判斷文件類型的一些宏。手打出來給你參考吧陵穗。睜散

S_ISREG() 為類型宏 普通文件
S_ISDIR() 目錄文件
S_ISCHR() 字元特殊文件
S_ISBLK() 塊特殊文件
S_ISFIFO() 管道或FIFO
S_ISLNK() 符號連接
S_ISSOCK() 套接字

閱讀全文

與linuxdtype相關的資料

熱點內容
錢的所有演算法 瀏覽:13
光模塊伺服器怎麼直接連電腦 瀏覽:376
編譯器識別單詞 瀏覽:344
2b2t伺服器怎麼獲得金蘋果 瀏覽:344
SQL如何進行伺服器配置 瀏覽:175
貿易公司適合在什麼app引流 瀏覽:717
高級c語言編程還在用turboc 瀏覽:884
cad如何畫單片機 瀏覽:13
管理雲伺服器哪個軟體好 瀏覽:747
什麼app可以消除照片一片水印 瀏覽:242
在什麼app上發表條漫 瀏覽:88
安卓電腦主機怎麼打開 瀏覽:819
eos生態app什麼時候可以登陸 瀏覽:397
找安裝維修工人用什麼App 瀏覽:300
區位碼加密 瀏覽:854
考編教師用什麼app 瀏覽:195
靜態面向對象編程語言 瀏覽:906
炒股密碼pdf 瀏覽:666
差分演算法有哪些 瀏覽:567
佳明怎麼配對安卓 瀏覽:247