Di che piattaforma stiamo parlando?


Originariamente inviato da ramy89
In effetti anche la getcwd è buona,ma funziona solo su windows
Macchestaiaddì? getcwd è una funzione eminentemente POSIX (infatti "nasce" in <unistd.h>, e la relativa manpage dice "getcwd() conforms to POSIX.1-2001."), la sua controparte Windows (con prototipo pressoché identico) è GetCurrentDirectory. Se su Windows trovi la getcwd è per compatibilità con i sistemi POSIX (*NIX).
e comunque in generale le funzioni di windows.h su msdn hanno una documentazione secondo me scadente,
Non mi pare proprio, la MSDN in generale è un'ottima documentazione di riferimento per le tecnologie Microsoft; ci sono delle zone non troppo documentate, ma le "core API" di windows.h in generale non rientrano tra queste.
In base a cosa dici che la documentazione MSDN è scadente?
anche se devo dire che rispetto all' altro metodo copre il difetto del fatto che agrv[0] può non essere il path dell' eseguibile.
argv[0] è completamente inaffidabile, può contenere qualunque cosa.
Su windows il metodo migliore è comunque la getcwd.
Su Windows il metodo "nativo" è la GetCurrentDirectory; su Linux/BSD/... il metodo "nativo" è la getcwd. Nessuno dei due metodi è standard C, dato che il C non prevede alcuna funzione standard per la gestione delle directory (si limita esclusivamente ai file).