1

所以我正在尝试完成我的编程任务,这里是:

Write a C/C++ program (call it string invert) that takes a
string argument from the command line and outputs the string in reversed order. Here comes
the twist: Each process can output at most one character. If you want to output more than a
single character, you must fork off one or more processes in order to do that, and each of the
forked processes in turn outputs a single character. After the call to program string invert
with the command line argument, the output should appear, and no more processes should
be running, in addition to the shell. Test your program on any UNIX/LINUX machine, and
turn in the source code as part of the written assignment. (The source code should be at
most a few lines long.)

我可以轻松地读取和反转字符串,没问题。问题是当它说“每个进程最多可以输出一个字符”时是什么意思。我什至不明白那是什么意思。我不需要任何代码,我相信一旦我理解我就可以自己做。我只需要有人解释这应该是什么意思。

4

2 回答 2

2

假设您有输入“abcd”,那么您的程序应该为每个字符生成一个进程。所以第一个进程将返回“d”,第二个进程将返回“c”,依此类推。该作业可能是对您对同步过程的理解程度的测试。

于 2012-09-17T06:26:14.793 回答
1

每个进程都应该只打印一个字符。例子:

$yourProgamm sample

通常你会遍历示例字符串并简单地通过调用来打印每个字符cout。但是,您应该每个进程只打印一个字符。意思是你输出e,一切都很好。但是,如果您再次运行循环以输出l相同的过程,则会打印第二个字符。

所以你必须为每个字符派生一个进程,让那个进程打印那个字符并继续的循环。一定要同步,否则你可能会得到随机顺序输出(我想这是分配的重点,只需运行几次就可以明白我的意思)。join

于 2012-09-17T06:24:23.827 回答