#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/wait.h>
int main(int argc, char* argv[], char *envp[])
{
char *p;
p = getenv("PATH");
strcat(p, ":.");
setenv("PATH", p, 1);
pid_t pid = fork();
pid_t waitpid();
if (pid == 0)
{
execle("ex1", argv[0], argv[1], argv[2], argv[3], NULL, envp);
}
else
{
waitpid(pid, NULL, 0);
}
return 0;
}
Данная программа считывает параметры командной строки и запускает дочерний процесс с этими параметрами.
Для чего в этой программе нужны следующие строки?
char *p;
p = getenv("PATH");
strcat(p, ":.");
setenv("PATH", p, 1);