Изменение содержимого дочерних процессов в программе c

Я новичок в программировании как на Linux, так и на C. Мне нужно написать код ac, который создает два дочерних процесса, и это нормально, но мне нужно дополнительно изменить код одного из дочерних процессов на «код ls-команды», а другого на «код ps-команда ".

Предполагается, что это действительно простой «псевдокод», но я не совсем уверен, понимаю ли я вопрос, какие-либо советы?

Следует ли вам самому кодировать настоящие «команды»? Или достаточно execute существующих команд?

Some programmer dude 01.05.2018 16:15

Вопрос говорит о создании двух дочерних процессов из вашего основного процесса. Вы также должны возложить некоторую ответственность на процесс. В этом случае обязанности этих двух дочерних процессов заключаются в выполнении функций «Is-command» и «ps_Command».

Mazhar 01.05.2018 16:16

Вы описываете, что делает серия системных вызовов fork / exec. Найдите руководство и начните читать.

Gene 01.05.2018 16:17

Вы знакомы с командой открывать?

ryyker 01.05.2018 16:17

Прочтите эту статью csl.mtu.edu/cs4411.ck/www/NOTES/process/fork/create.html

Mazhar 01.05.2018 16:31
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
137
1

Ответы 1

Звучит как традиционная комбинация fork() + execve(). Вызов fork() запускает новый процесс, который является копией вызываемого. И последующий вызов execve("ls") заменит разветвленный процесс на содержание исполняемого файла ls.

Для получения дополнительной информации см. man 2 fork и man 3 execv.

Спасибо за ответ! Пока у меня есть этот код: `#include <stdio.h> #include <stdlib.h> #include <unistd.h> int main () {printf (" Эта программа создает два дочерних процесса основного процесса. ") ; int child1; int child2; child1 = вилка (); если (ребенок1 == 0) {execve ("ls"); выход (0); } child2 = fork (); если (вилка == 0) {execve ("пс"); выход (0); }} `Итак, насколько я понимаю, значение дочернего процесса должно быть равным 0. Предполагается, что execve изменяет содержимое процесса chil. Но я не уверен, правильно ли я понял.

MrRoger2 01.05.2018 16:47

Да, это более-менее похоже на то, что вы описали. Однако было бы лучше, если бы вы поместили этот фрагмент кода в свой вопрос вместо комментария, потому что его гораздо легче читать, чем.

Ivan Velichko 01.05.2018 16:57

Другие вопросы по теме