ディレクトリ間を移動するスクリプトを C で作成しました。プログラムの目的は、最初のフォルダーの親を除くすべてのフォルダーにアクセスすることです。たとえば、ポイント C://Program Files から開始した場合、C:// に移動するべきではありません。
ただし、Program Files フォルダーでは、すべてのフォルダーがこの if 関数に受け入れられます。
if (!S_ISDIR(buffer.st_mode) && (stat(dir->d_name, &buffer) != -1)
しかし、実際にはファイルがフォルダーであることは事実です。
フォルダーがフォルダーの場合、この関数に入ります。
else if (S_ISDIR(buffer.st_mode)) {
if (strcmp(dir->d_name,".") != 0 && strcmp(dir->d_name, "..") != 0)
関数を再帰的にもう一度調べます。
エラーが表示されますか?