chdir("~/")
non sembra funzionare. Mi aspetto di guardare la stringa e sostituire la tilde a mano, o c'è un modo migliore?Come posso raggiungere l'espansione tilde in C?
risposta
POSIX fornisce wordexp(3)
per eseguire espansioni di tipo shell, inclusa l'espansione della tilde.
La tilde in un percorso è una cosa specifica della shell. Quello che puoi fare è vedere se il primo carattere è una tilde e una barra (o una fine tilde della stringa), quindi sostituire la tilde con il valore della variabile di ambiente HOME
(che puoi ottenere da getenv
).
Se il secondo carattere è non una barra, è molto probabile sotto forma di ~user/path
. Quindi devi estrarre il nome utente e utilizzare per es. getpwnam
per ottenere l'immissione della password dell'utente, che contiene la home directory dell'utente.
Si può utilizzare wordexp
esempio di seguito
#include <stdio.h>
#include <wordexp.h>
int main(int argc, char* argv[]) {
wordexp_t exp_result;
wordexp(argv[1], &exp_result, 0);
printf("%s\n", exp_result.we_wordv[0]);
}
Se si utilizza questa funzione in una funzione, è necessario aggiungere 'wordfree (& exp_result);' per evitare perdite di memoria. – ishmael
- 1. L'operatore tilde in C
- 2. Come raggiungere la codifica sicura di Base64 URL in C#?
- 3. L'operatore tilde in Scala
- 4. Operatore Tilde in espressioni regolari
- 5. Cambia colore tilde (~) in Vim
- 6. Raggiungere il multi-core in Java: come?
- 7. Raggiungere "scivolare" l'animazione in WPF
- 8. Cosa significa questa tilde?
- 9. Differenza tra $ HOME e '~' (tilde)?
- 10. Che cosa significa tilde symbol (~) in CSS
- 11. Applicazioni di '~' (tilde) operator in Python
- 12. Raggiungere EOF con fgets
- 13. Come stampare una tilde (~) in Zebra Programming Language (ZPL)
- 14. Node-sass non capisce tilde
- 15. Significato di ~. (tilde dot) argomento?
- 16. confronta due percorsi di Windows, uno contenente tilde, in python
- 17. Come raggiungere gli utenti Cartella Libreria in OS X
- 18. IntroJs come raggiungere le aree evidenziate?
- 19. Come raggiungere la fine di un'espressione AST
- 20. Come raggiungere lo zio utilizzando jQuery
- 21. aiuto per raggiungere DI/IOC in casa
- 22. Utilizzando tilde nello script tag src attributo
- 23. Raggiungere l'effetto opacità bianco in html/css
- 24. Raggiungere una griglia complessa in bootstrap
- 25. Raggiungere il fondo dello schianto
- 26. Come raggiungere l'ultima posizione del cursore in Eclipse?
- 27. Come raggiungere l'ProgressBar indeterminata fluida utilizzata in Gmail app Android
- 28. python tilde unario operatore come negazione numpy bool array
- 29. Significato di tilde in Linux bash (non home directory)
- 30. Come posso ottenere un elenco di tutti i caratteri stampabili in C#?
voglio dire che è incorporata in un guscio. Non dovrebbe essere difficile da rotolare il tuo. – squiguy