È possibile utilizzare il comando excecl
int execl(const char *path, const char *arg, ...);
come mostrato qui
#include <stdio.h>
#include <unistd.h>
#include <dirent.h>
int main (void) {
return execl ("/bin/pwd", "pwd", NULL);
}
Il secondo argomento sarà il nome del processo così come apparirà nella tabella dei processi.
In alternativa, è possibile utilizzare la funzione getcwd() per ottenere la directory di lavoro corrente:
#include <stdio.h>
#include <unistd.h>
#include <dirent.h>
#define MAX 255
int main (void) {
char wd[MAX];
wd[MAX-1] = '\0';
if(getcwd(wd, MAX-1) == NULL) {
printf ("Can not get current working directory\n");
}
else {
printf("%s\n", wd);
}
return 0;
}
uomo getcwd. Questo è tutto ciò di cui hai bisogno. –
Charlie Burns, la macchina virtuale mi è stata fornita priva di una voce per getcwd. Grazie lo stesso. – user2851770
http://theunixshell.blogspot.com/2013/01/executing-shell-command-in-cc-and.html – Vijay