int ls_prepare(char *w,int aflag,int lflag)?? //從后面看w是路徑
成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的新吳網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
{????????????//塊語句
struct stat buf????????//結(jié)構(gòu)體; 保存文件信息,在頭文件sys/stat.h
char name[100];????????//數(shù)組
DIR *dir;????????????????????//目錄結(jié)構(gòu)體; 沒有必要去研究; 知道哪些函數(shù)用他即可
struct dirent *pdr;???? //目錄信向息結(jié)構(gòu)體, 里面保存文件信息,包括inode,文件名,偏移量...
目測(cè)這里應(yīng)該少了代碼;因?yàn)閎uf沒有初始化;
if(S_ISDIR(buf.st_mode))????????//判斷是否為一個(gè)目錄
{??
dir = opendir(w);????????????????????//打開路徑w;
while ((pdr = readdir(dir))!=NULL) ????????//然后讀取目錄
{
if(pdr-d_name[0]=='.')????????????????????//如果目錄是'.'和隱藏文件(linux隱藏文件'.'打頭)
continue;????????????????????????????????????????//那么跳過
memset(name,0,100);????????????????????情況name字符串
strcpy(name,w);????????????????????????????????把路徑復(fù)制到字符串中
strcat(name,"/");????????????????????????????????字符串拼接
strcat(name,pdr-d_name);????????????字符串拼接
do_ls(name,pdr-d_name,lflag);????????//這個(gè)應(yīng)該就是自己定義ls的名字吧;
}
closedir(dir);????????????????//關(guān)閉目錄
}
·1、這應(yīng)該是一個(gè)在宿主語言中(比如:c語言)待拼接成一個(gè)完整的linux/Unix命令串的字符串,待拼接完成后,再利用system("")調(diào)用這個(gè)命令;
以c語言為例,拼接如下:
sprintf(cmd,"grep \"%s\" %s | awk '{print $5}' %s\n",str_a,str_b,str_c);
這個(gè)命令的轉(zhuǎn)換成linux直觀的命令為:grep "字符串_1" 字符串_2 | awk '{print $5}' 字符串_3
其中:
"字符串_1"為grep過濾的模式;
"字符串_2"為grep篩選的對(duì)象文件名;
"字符串_3"為篩選結(jié)果輸出的文件名;
即,從文件名為"字符串_2"中篩選滿足條件 "字符串_1" 的行,并按照空格作為行分隔符,然后提取第5列,寫入(不重復(fù))文件名為"字符串_3"的文件中.
·2、因此,這個(gè) grep \"%s\" %s | awk '{print $5}' %s\n 命令串片段的作用為:
從文件名為"第二個(gè)%s"的文件中,篩選滿足grep條件"第1個(gè)%s"的行,并將該行中以空格分隔的第5列寫入文件名為"第3個(gè)%s"的文件中. (PS:""的作用不用解釋吧)
3、最后,希望下次樓主問的問題不要這么含蓄,乍一看還真不知道是啥.
CROSS_COMPILE=arm-openwrt-linux-muslgnueabi-
echo $CROSS_COMPILE
方法1:
test1=$(echo $CROSS_COMPILE)gcc
echo $test1
方法2:
test2=${CROSS_COMPILE}gccabc
echo $test2