2015-04-25 29 views
0

我有這個程序,我的目標是在Linux中查找文本文件程序,但它發現所有文件,如*.*。 你能幫我找到代碼問題嗎?在Ubuntu目錄中查找文本文件

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

int main() 
{ 
    char str[256], str2[256], buf[256]; 
    strcpy(str,"find -name "); 
    strcpy(str2,"'*.txt'"); 
    sprintf(buf, "/bin/sh -c %s %s", str,str2); 
    system(buf); 
    return 0; 
} 

回答

0

find如果調用而不進行位置搜索的,是「執行位置敏感」如果你從說/(根)與/home/you/myprogram/./executable執行程序的意思,你的程序將啓動您的系統上搜索所有目錄。如果您改爲/home/you/myprogram,例如其中還包含一個名爲test.txt的文本文件,您將通過運行./executable找到test.txt

我建議要麼記住使用你的程序有這種行爲,或引入其他參數find,它指定搜索的位置。 欲瞭解更多信息,請參閱man find