因此,出于某种原因,我无法在C中获得此代码的输出,因此我只能在下面的代码中提出一些概念性问题:
min
做什么?它只是定义整数N.
作为阵列?int N = atoi(argv[i]);
是什么意思?是-1意味着它是错误还是没有正确的循环?这意味着我无法使用fork创建一个孩子?if (-1 = fork())
在调用printf函数时做了什么?代码:
getpid()
答案 0 :(得分:1)
您可以通过查看手册页来回答您提出的许多问题。无论如何,我会尝试解释它们。
1)int atoi(const char *str)
str - 这是整数的字符串表示形式。此函数atoi
将转换后的整数作为int值返回。如果无法执行有效转换,则返回零。
至于你的代码,我有存储垃圾值。因此atoi(argv[i]))
的值是不可预测的。您可能想为i
分配一个值。
2)-1 == fork()
,(我假设你的代码中出现了语法错误,你已经知道了)我们检查fork()函数的返回值会发生什么,如果检查手册fork()用于创建新进程。如果它无法创建新进程,则返回-1。如果它像fork() == -1
3)getpid()
返回调用进程的进程ID。 (这通常由生成唯一临时文件名的例程使用。)
4)右输出是什么意思?你试过运行代码并得到任何错误?请详细说明
如果使用命令行参数运行更正后的代码,则输出结果如下所示。
de@ubuntu:~/Desktop$ ./a.out 2
Create processes....
Process id = 25405
Process id = 25406
Process id = 25408
Process id = 25407