現在のパスからたどり、ファイルを検索しているときに、ファイルを見つけるのに問題があります。
次のコードでは、path
が原因であると思われます。chdir
関連するフォルダは次のとおりです。
- 12,13,14 , 12 は親ディレクトリ
- 12 内 13 、13 内 14
- 14内のdavid1.txt
- get_current_dir_name()は Linux 関数であり、私のものではありません
次のように、から実行可能ファイルを実行しますDesktop
(printf-s
問題を特定するためのものです)。
// doesn't work
a@ubuntu:~/Desktop$ ./exer4 12 david1.txt
Current path is :12
Current path is :/home/a/Desktop/12/13
Current path is :/home/a/Desktop/12/13/14
//////////////////////////////////////////////////
// doesn't work
a@ubuntu:~/Desktop$ ./exer4 12/13 david1.txt
Current path is :12/13
Current path is :/home/a/Desktop/12/13/14
////////////////////////////////////////////////
// doesn't work
a@ubuntu:~/Desktop$ ./exer4 12/13/14 david1.txt
Current path is :12/13/14
これらの行を削除すると:
chdir(path); // the problem is probably here
strcpy(path, get_current_dir_name()); // and here
次に、単一のライブラリ名のみを含むすべてのクエリが機能します。たとえば、次のようになります。
// works :
a@ubuntu:~/Desktop$ ./exer4 12 david1.txt
Current path is :12
Current path is :12/13
File found!
12/13/14/david1.txt-rw-rw-r-- 1 1000 1000 0 2012-06-17 08:10
Current path is :12/13/14
////////////////////////////////////////////////////////////
// works
a@ubuntu:~/Desktop$ ./exer4 12/13 david1.txt
Current path is :12/13
File found!
12/13/14/david1.txt-rw-rw-r-- 1 1000 1000 0 2012-06-17 08:10
Current path is :12/13/14
////////////////////////////////////////////////////////////
// Doesn't work
a@ubuntu:~/Desktop$ ./exer4 12/13/14 david1.txt
Current path is :12/13/14
私がここで間違っていることは何か分かりますか? 数え切れないほど変更しようとしましたが、何も修正されませんでした。ありがとう