#c #linux #operating-system #fork #wait
Вопрос:
int main(){
id_t child1=fork();
if(child1 > 0){
// want this block to execute completely before child block
}
else if(child1 == 0){
// want this block to execute after the parent block has executed
}
else{
perror("Process_failed" );
}
Написание родительского блока перед разветвлением отлично справляется с этой задачей, но я должен сделать это после развилки.
В текущей ситуации это иногда выполняет ребенок, а иногда и родитель. Я знаю, что это из-за метода планирования, переключения контактов и т. Д., Но как мне это ограничить
Комментарии:
1. Можете ли вы использовать
std::thread
вместоfork
этого ? Общение между потоками намного проще, чем между процессами.2. @super на самом деле выполняю задание и его требование использовать fork()
3. Тогда я бы занялся
pthread_mutex
и друзьями.4. Это не по-доброму. Это было предложение. К тебе. Вы посмотрите на это.
5. о, я изучаю это