执行c+的多个进程+;程序 我有一个C++程序。我正在LInux上执行它。我想用不同的参数执行这个程序的多个实例。例如:
./exeutableProgram file.txt执行c+的多个进程+;程序 我有一个C++程序。我正在LInux上执行它。我想用不同的参数执行这个程序的多个实例。例如:,c++,linux,fork,C++,Linux,Fork,./exeutableProgram file.txt ./exeutableProgram file2.txt ./exeutableProgram文件3.txt 换句话说,我想创建多个进程,使每个进程在不同的处理器上运行 我怎样才能完成这项任务? 我需要使用fork()编写一些程序吗?或者我需要写一些shell脚本? 请在这方面提供一些指导。您可以编写一个bash脚本来执行此操作: for var in "$@" <-- loops over all of the arguments
./exeutableProgram file2.txt
./exeutableProgram文件3.txt
换句话说,我想创建多个进程,使每个进程在不同的处理器上运行 我怎样才能完成这项任务? 我需要使用fork()编写一些程序吗?或者我需要写一些shell脚本?
请在这方面提供一些指导。您可以编写一个bash脚本来执行此操作:
for var in "$@" <-- loops over all of the arguments and sets them to var.
do
/path/to/executableProgram $var & <-- executes the program with current var
as argument, & means background process.
done
您可以编写bash脚本来执行此操作:
for var in "$@" <-- loops over all of the arguments and sets them to var.
do
/path/to/executableProgram $var & <-- executes the program with current var
as argument, & means background process.
done
如果在linux发行版上安装了
util linux
包,则可以使用该命令在特定CPU上启动进程。要在core 0和core 5上启动程序,请执行以下操作:
$ taskset 0x1 ./executableProgram file.txt
$ taskset 0x20 ./executableProgram file2.txt
如果在linux发行版上安装了
util linux
包,则可以使用该命令在特定CPU上启动进程。要在core 0和core 5上启动程序,请执行以下操作:
$ taskset 0x1 ./executableProgram file.txt
$ taskset 0x20 ./executableProgram file2.txt
@Mayerz yes shell脚本每个进程在不同的处理器上运行?不一定。您可能只有一个处理器,但内核可以为您进行时间切片。@Mayerz yes shell script每个进程运行在不同的处理器上?不一定。您可能只有一个处理器,但内核可以为您进行时间切片。使用脚本完成此任务与使用Linux fork()有什么区别吗?
fork()
意味着编写一个程序,该程序会多次打开相同的可执行文件,这和我在这里所做的一样,只是难度要大得多fork()
更典型地用于客户端-服务器应用程序,其中服务器分叉处理每个客户端。我没有编写太多脚本。你能解释一下$var&在做什么吗。当我调用此脚本时,是否可以发出多个参数?@Zara我已编辑了答案以提供更多细节。谢谢。通过不同的参数,我指的是./Script file*.txt LogFile*.txt。换句话说,可执行文件需要两个文件作为参数。一个文件用于处理,另一个文件用于写入结果。使用脚本完成此任务与使用Linux fork()有什么区别吗?fork()
意味着编写一个程序,该程序会多次打开相同的可执行文件,这和我在这里所做的一样,只是难度要大得多fork()
更典型地用于客户端-服务器应用程序,其中服务器分叉处理每个客户端。我没有编写太多脚本。你能解释一下$var&在做什么吗。当我调用此脚本时,是否可以发出多个参数?@Zara我已编辑了答案以提供更多细节。谢谢。通过不同的参数,我指的是./Script file*.txt LogFile*.txt。换句话说,可执行文件需要两个文件作为参数。一个文件是它进行处理的文件,另一个文件是它写入结果的文件。