I have a file that I want to run multiple instances of
Для этого у вас есть два варианта:
1. Вы можете использовать несколько вилки() системный вызов, чтобы дублировать новые дочерние процессы и откройте файл в этих процессах.
2. У вас может быть несколько потоков в вашей программе, которые открывают один и тот же файл.
Но, глядя на следующие три точки, fork() - это выбор, с которым нужно идти.
I want a new ID assigned to each process for the file
При повторении процессов с использованием fork() каждый процесс получает свой собственный уникальный Id (pid) процесса.
I need to assign a char eg. 'A' that was given through argv[1] to a process
Для этого вам нужно использовать один из многочисленных звонков в «ехес» family.By с помощью «Exec»
вы можете также передать параметры командной строки для вновь созданных процессов.
Это не может быть сделано с помощью fork, поскольку fork используется для дублирования текущего процесса, тогда как если вы хотите создать совершенно новый процесс, вы должны использовать вызовы exec.
Edit:
Для того, чтобы получить параметры командной строки, передаваемых в процессе, вы должны
знать идентификатор процесса, а затем вы можете посмотреть на каталог с его именем же, как ФИД
внутри файловой системы/proc (не установлено на самом устройстве).Когда вы найдете каталог
, вы получите параметры, переданные ему в файле с именем «cmdline».
Для более подробной информации вы можете прочитать о файловой системе «/ proc».
уточнить - я не ожидаю, что кто-то напишет мою функцию, просто может быть объяснение, если это возможно или нет :) – Sam23yo
Несколько экземпляров * файла *? Какие? – EOF
* присваивать PID «A» *, что это значит? –