У меня есть простой код: pid_t newprocess = fork(); if (newprocess < 0){ perror ("fork"); exitValue = -1; } else if (newprocess) { // child if(waitpid(newprocess,status,0) < 0) { perror ("waitpid"); exitValue = -1; } if(WIFEXITED(*status)) { exitValue = WEXITSTATUS(*status); } else { if(WIFSIGNALED(*status)) printf ("exec failed: program terminated by signal %d\n", WTERMSIG(*status)); else if (WIFSTOPPED(*status)) printf ("exec failed: program stopped by signal %d\n", WSTOPSIG(*status)); exitValue = -1; } } else { char *shell[] = {"/bin/sh", "-c", cmdline, NULL}; environ = envp; execvp(shell[0], shell); exitValue = errno; showSystemErrorMessage (exitValue); _exit(exitValue); } Все вроде бы нормально начинает работать, но периодически простые программы типа unzip отваливаются с сообщением exec failed: program terminated by signal 115. Просто не знаю, на что подумать. Что за сигнал 155? Почему unzip падает? Кто-нибудь может сказать, в чем дело? Спасибо.