allora ho dei programmi in una cartella relativa al programma principale che quando scrivo il nome di uno di quei programmi li esegue.
ho due dubbi:
1)come li eseguo?
2)cm indico il path relativo(sto su linux)
allora ho dei programmi in una cartella relativa al programma principale che quando scrivo il nome di uno di quei programmi li esegue.
ho due dubbi:
1)come li eseguo?
2)cm indico il path relativo(sto su linux)
1) Con fork ed exec oppure con system.
2) In che senso?
Amaro C++, il gusto pieno dell'undefined behavior.
metti che il mio comando è ciao e sta in Commands che è una sottocartella della cartella del mio programma principale devo passargli il path relativo ma nn funziona su linuxOriginariamente inviato da MItaly
1) Con fork ed exec oppure con system.
2) In che senso?
I percorsi relativi si riferiscono alla cartella corrente del processo, che però è differente a seconda di come lo avvii; tu attualmente come fai partire il processo a cui passi il percorso relativo?
Amaro C++, il gusto pieno dell'undefined behavior.
in che senso cm lo faccio partire? :master:Originariamente inviato da MItaly
I percorsi relativi si riferiscono alla cartella corrente del processo, che però è differente a seconda di come lo avvii; tu attualmente come fai partire il processo a cui passi il percorso relativo?
se da un programma devi par fartire un altro programma devi usare quanto ti ha suggerito MItaly punto 1 (scelta migliore).
Ti conviene determinare la directory corrente e costruirti il path completo per la chiamata.
In alternativa puoi inserire tutti i tuoi eseguibili nella directory $(HOME)/bin e metterla nella variabile di ambiente PATH (normalmente c'è già). In questa maniere li esegui direttamente inserendo il nome del programma
ciao
sergio
visto che il c++ lo sto riprendendo in questi giorni cm faccio a determinare la directory corrente?Originariamente inviato da mondobimbi
se da un programma devi par fartire un altro programma devi usare quanto ti ha suggerito MItaly punto 1 (scelta migliore).
Ti conviene determinare la directory corrente e costruirti il path completo per la chiamata.
In alternativa puoi inserire tutti i tuoi eseguibili nella directory $(HOME)/bin e metterla nella variabile di ambiente PATH (normalmente c'è già). In questa maniere li esegui direttamente inserendo il nome del programma
ciao
sergio
per la tua idea è bella ma nn posso utilizzarla(il mio programma è un emulatore di terminale)
su windows
codice:#include <stdio.h> #include <stdlib.h> int main() { char buf[_MAX_PATH]; getcwd(buf, _MAX_PATH); printf("Vecchia directory : %s\n", buf); chdir("/home/sergio"); getcwd(buf, _MAX_PATH); printf("Nuova directory : %s\n", buf); return (0); }