printf("%s\n", (char*)ent->d_name);
未定義の動作を私に与えています。出力に奇妙な記号が表示され、その後にランダムな文字が続く場合があります。ent
異なる構造体です。
これは、pthreadに渡される関数内で宣言されています。
void * copyFile( void * arg ){
struct dirent *ent = (struct dirent *)arg;
printf("%s\n", (char*)ent->d_name);
}
そしてこのように呼ばれます:
int ret = pthread_create(&thread_list[i], NULL, copyFile, &ent);
呼び出し元の関数でオリジナルに名前を印刷してみましたが、ent
正常に機能しました。したがって、問題は転送と再割り当て/キャストのどこかにあります。