小编Alo*_*pex的帖子

如何从子进程获取返回值到父进程?

我应该将斐波纳契系列的前12个术语的总和从子进程返回到父进程,但是377父进来了30976.

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>

int main(int argc, char *argv[])
{
    pid_t childpid;
    int i, fib_sum=0, fib1=1, fib2=1, temp, status;

    childpid=fork();

    if(childpid!=0)
    {
        wait(&status);
        fprintf(stderr, "%d\n", status);
    }
    else
    {
        for(i=1; i<=12; i++)
        {
            temp=fib1;
            fib_sum=fib1+fib2;
            fib1=fib_sum;
            fib2=temp;
        }
        fprintf(stderr, "%d\n", fib_sum);
        return fib_sum;
    }
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

c fork ipc parent-child child-process

5
推荐指数
1
解决办法
2306
查看次数

这个位在一个字节中的恢复如何工作?

我是编程的新手,我发现这种方法可以反转C中一个字节的位:

//(10000011) -> (11000001)

unsigned char reverse(unsigned char b) {
   b = (b & 0xF0) >> 4 | (b & 0x0F) << 4;
   b = (b & 0xCC) >> 2 | (b & 0x33) << 2;
   b = (b & 0xAA) >> 1 | (b & 0x55) << 1;
   return b;
}
Run Code Online (Sandbox Code Playgroud)

由用户发布以回答此问题,但我无法理解它是如何工作的.这些常数意味着什么?

c bit-manipulation bit-shift bitwise-operators or-operator

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