程序中的错误是什么?

时间:2015-08-20 03:03:27

标签: c system fork

我用C语言编写了这个基本的forking程序。但编译器发出错误。代码是

Position[x >= 7, x]

错误是

Error in Position[x >= 7, x] : 
  object of type 'closure' is not subsettable

3 个答案:

答案 0 :(得分:2)

您正在使用Windows,看起来您无法在Windows上执行此操作。以下是一些相关的帖子:

这是搜索你的错误时的前三个链接:未定义的引用`fork'

答案 1 :(得分:1)

你错过了一个图书馆:

将其添加到代码顶部

#include  <sys/types.h>

答案 2 :(得分:1)

统一我到目前为止看到的最佳答案(不一定是最受欢迎的):

我在程序中发现了另一个错误。 %d告诉printf打印int类型的参数,但您提供的实际类型为pid_t。根据{{​​3}}(我强烈建议阅读并完全理解多次以编写更好的代码;您将学习很多),&#34;如果有任何论证对于相应的转换规范,它不是正确的类型,行为是未定义的。&#34;您需要显式转换。例如:

printf("From child process with process id %d\n", (int) getpid());
printf("Parent Process with id %d\n", (int) getpid());
printf("Parent spawned process %d\n", (int) pid);

转换为int本身就是一个错误;根据{{​​3}},符合POSIX的实现&#34;应支持一个或多个编程环境,其宽度为blksize_tpid_tsize_t,{{1 },ssize_tsuseconds_t不大于useconds_t类型的宽度。&#34;在这样的环境中,转换为long并使用相应的long(顺便说一下, ell )指令会更合适:

%ld