相关疑难解决方法(0)

为什么这个程序打印"分叉!" 4次?

为什么这个程序打印"分叉!"4次?

#include <stdio.h>
#include <unistd.h>

int main(void) {

  fork() && (fork() || fork());

  printf("forked!\n");
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c unix linux fork systems-programming

75
推荐指数
6
解决办法
1万
查看次数

短路评估和副作用

好吧,我有点尴尬地问这个问题,但我只是想确定......

众所周知,C在布尔表达式中使用短路评估:

int c = 0;
if (c && func(c)) { /* whatever... */ }
Run Code Online (Sandbox Code Playgroud)

在该示例func(c)中未调用,因为c求值为0.但是,比较的副作用会改变下一个被比较的变量的更复杂的例子呢?像这样:

int c; /* this is not even initialized... */
if (canInitWithSomeValue(&c) && c == SOMETHING) { /*...*/ }
Run Code Online (Sandbox Code Playgroud)

函数canInitWithSomeValue返回true并在成功时更改给定指针的值.是否保证后续比较(c == SOMETHING在本例中)使用的值设置为canInitWithSomeValue(&c)

无论编译器使用多么繁重的优化?

c

18
推荐指数
2
解决办法
1万
查看次数

如何使用&&和||评估这些fork()调用 C中的运营商?

我在C下面有一些使用fork()系统调用的代码,但我很困惑:如何
解决它的问题:

int main()
{
    fork();
    fork() || fork() && fork();
    fork();
    printf("ämit");
}
Run Code Online (Sandbox Code Playgroud)

fork() && fork() || fork(); 评估如下所示:

       fork()
      /      \
    0/        \>0
 || fork()     && fork()
     /\            /   \
    /  \         0/     \>0
   *    *     || fork()  *
                /   \
               *     *
Run Code Online (Sandbox Code Playgroud)

我需要同样的树fork() || fork() && fork().任何人都可以告诉我应该如何实现它?

c

3
推荐指数
1
解决办法
429
查看次数

fork中的fork()系统调用

    #include <stdio.h>
    #include <unistd.h>
    int main()
    {
       fork();
       fork() && fork() || fork();
       fork();

     printf("forked\n");
     return 0;
    }
Run Code Online (Sandbox Code Playgroud)

难以理解如何计算执行程序后产生的进程数?帮我看看.

平台--UBUNTU 10.04

c unix fork

3
推荐指数
1
解决办法
4336
查看次数

该程序创建了多少个进程,包括初始父进程?

我正在试图弄清楚这个程序创建了多少个进程,包括初始父进程.正确的答案应该是9,但我不明白为什么答案是9.如何创建这9个流程?提前致谢!

#include <stdio.h>
#include <unistd.h>
…
int main()
{
  pid_t john;
  john = fork( );

  if (john == 0) {
      fork( ); fork( ); fork( );
  }
/* Consume resources of another process */
/* This does NOT create a new process. */
Consume( ); Consume( );

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

c fork

3
推荐指数
2
解决办法
3116
查看次数

标签 统计

c ×5

fork ×3

unix ×2

linux ×1

systems-programming ×1