Dato un file system cifs montato /network/cifs
che non fa distinzione tra maiuscole e minuscole, come si ottiene il percorso case sensitive utilizzando C?Come posso ottenere un percorso case sensitive su Linux senza l'iterazione della directory?
Ad esempio, il file fs ha un file /network/cfis/Adena/t.txt
. Dato /network/cfis/AdEnA/T.txt
(che risolve correttamente), voglio /network/cfis/Adena/t.txt
.
So che un modo per farlo è iterare ricorsivamente sul percorso, confrontarli in minuscolo e ottenere il caso restituito dall'iterazione della directory. Tuttavia, questo comporta un sacco di syscalls che preferirei non fare.
La modifica delle opzioni di montaggio non è una soluzione.
Se ciò non è possibile, è possibile determinare se un percorso si trova su un file system senza distinzione tra maiuscole e minuscole? In questo modo ho potuto evitare di fare l'iterazione ricorsiva della directory, se non richiesto.
Non lo dire 'if (NULL == GetCurrentDir (tampone, FILENAME_MAX))' – Dan
Penso che volevi usare la macro 'GetCurrentDir' invece di' getcwd' nel codice? –
Cosa succede se il percorso passato non è la directory corrente? – RedX