О, дорогой, выполнение упомянутого вами действия не может быть потокобезопасным, потому что на самом деле это chdir, что может запутать любые другие потоки. Мне нужно будет найти часть, которая вам нужна, для манипуляции со строками, но она также не может удалять софт-ссылки или делать что-либо еще, что требует от операционной системы запрашивать информацию о файлах, не будучи немного небезопасным.
Похожие сообщения:
Попробуйте преобразовать относительные пути к файлам, а затем сравните их как строки:
#include<stdio.h>
#include<dirent.h>
#include<fcntl.h>
#include<sys/param.h>
int main( int argc, char **argv )
{
char buffer[MAXPATHLEN+1];
if( argc <= 1 ) return 0;
DIR*d = opendir( argv[1] );
if( !d ) return 0;
int dfd = dirfd(d);
if( !dfd ) return 0;
int result = fcntl( dfd, F_GETPATH, buffer );
if( result == -1 ) return 0;
fprintf( stdout, "path='%s'\n", buffer );
return 0;
}