компиляции
Я правильно понимаю, что остается только вариант повторной проверки времени последнего изменения у .o файла после отработки execve()?
у компилятора есть код возврата и лог :)
execve() не хочет возвращать значение
Вы уже прочитали про ipc?
где можно про это прочитать?
в гугле, вестимо
А свет сошелся клином на этой одной функции?
В целом да, чем вас треды не устраивают?
При ошибке возвращает же
Не выводит if(execve("/usr/bin/g++", args, 0) == -1); { printf("error compiling\n"); exit(-1); } Сама функция стартовала как надо, но отклика от программы нету
Так ошибка то была?)
.
Тебе же выше Denis P написал, что execve() не возвращает при удачном выполнении
execve может вернуть -1 только если произошла ошибка запуска для получения кода возврата тебе нужен wait/waitpid
Причем в некоторых ситуациях могло случиться так, что код функции main в вызываемой программе не начал выполняться, но вызов execve считается успешным.
это он как бы уже запустился по идее но не дошёл до main и обвалился раньше
Я сталкивался с этим, когда ld.so запустился, но он не отработал и приложение вообще не начало работать :)
Ибо сказано: Если исполняемый файл является динамически-скомпонованным файлом в формате a.out, содержащим заглушки для динамических библиотек, то в начале выполнения этого файла вызывается динамический компоновщик Linux ld.so(8), который начинает выполнение с загрузки общих объектов в память и компонует их с исполняемым файлом.
у тебя все равно будет ненулевой exit code
Точняк, спасибо
Оно просто смотрит на код возврата
Есть такой момент Я устанавливаю константу, сколько у меня физически ядер и счетчик, сколько дочерних процессов сейчас Перед линковкой в цикле вызываю wait() Если в for вставить childProcCount вместо CPUcount, это будет корректная логика? Просто wait() возвращает -1 в том числе, если нечего ожидать
В линуксе есть inotify. Проверять время вручную -- прошлый век. Тем более там нюансы с миллисекундами. В юниксах еще номера inode можно проверять.
Миллисекунды проверять и не нужно, разницы в секундах достаточно
Обсуждают сегодня