Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 更改waitpid()的参数_C_Function_Fork_Calculator_Waitpid - Fatal编程技术网

C 更改waitpid()的参数

C 更改waitpid()的参数,c,function,fork,calculator,waitpid,C,Function,Fork,Calculator,Waitpid,我想知道您是否可以更改 waitpid() 目前,我需要连续变量输出(0.50)作为打印内容。然而,考虑到waitpid()在我尝试打印输出时只接受整数,它给了我0。不确定如何解决这个问题,或者这是否是问题所在 计算的意思是(1+(2*3)/(2*7))=0.5 #包括 #包括 #包括 #包括 #包括 int main(){ INTA=1,b=2,c=3,d=2,e=7; 整数a加上pid,b乘c乘pid,d乘e乘pid; 整数a_加,b_乘以c,d_乘以e; a_plus_pid=fork()

我想知道您是否可以更改
waitpid()
目前,我需要连续变量输出(
0.50
)作为打印内容。然而,考虑到
waitpid()
在我尝试打印输出时只接受整数,它给了我0。不确定如何解决这个问题,或者这是否是问题所在

计算的意思是(1+(2*3)/(2*7))=0.5

#包括
#包括
#包括
#包括
#包括
int main(){
INTA=1,b=2,c=3,d=2,e=7;
整数a加上pid,b乘c乘pid,d乘e乘pid;
整数a_加,b_乘以c,d_乘以e;
a_plus_pid=fork();
如果(a加上pid)
{
b_乘以_c_pid=fork();
if(b_乘以c_pid)
{
d_乘以e_pid=fork();
if(d_乘以e_pid)
{
waitpid(a_plus_pid,&a_plus,0);
waitpid(b_乘以c_pid,&b_乘以c,0);
waitpid(d_乘以e_pid,&d_乘以e,0);
//应该打印0.50
printf(“%d”)((a+(b_乘以c))/d_乘以e);
}
其他的
{
出口(d*e);
}
}
其他的
{
出口(b*c);
}
}
其他的
{
出口(a);
}
}
的第三个参数是
int
,因此不能在那里传递浮点值

事实上,在那里传递这样一个值是没有意义的。你需要更加努力地学习并重新考虑你的方法。

的第三个参数是
int
,因此你不能在那里传递浮点值


事实上,在那里传递这样一个值是没有意义的。你需要更加努力地学习,重新考虑你的方法。

阅读并花几天时间阅读材料(包括,,…)。你的问题显示出一种深刻的误解,没有多大意义。阅读关于你所有的算术都是整数算术;你永远不会从中得到浮点值。您的退出代码限制为255;这也可能引起问题。嵌套的ifs和else的链感觉很笨拙。您最好对fork(子对象)的0返回值进行更好的分叉和测试,并对下一个子对象执行一些操作。是的,这是我的问题,我需要一个浮点返回。所以我想知道,在打电话给waitpid之后,演员会不会工作?阅读并花几天时间阅读材料(包括,,…)。你的问题显示出一种深刻的误解,没有多大意义。阅读关于你所有的算术都是整数算术;你永远不会从中得到浮点值。您的退出代码限制为255;这也可能引起问题。嵌套的ifs和else的链感觉很笨拙。您最好对fork(子对象)的0返回值进行更好的分叉和测试,并对下一个子对象执行一些操作。是的,这是我的问题,我需要一个浮点返回。所以我想知道在调用waitpid work之后是否会进行铸造?是的,我认为我使用除法计算器的方法是错误的。是的,我认为我使用除法计算器的方法是错误的。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>

int main(){


    int a = 1, b = 2, c = 3, d = 2, e = 7;

    int a_plus_pid, b_times_c_pid, d_times_e_pid;

    int a_plus, b_times_c, d_times_e;

    a_plus_pid = fork();
    if(a_plus_pid)
        {
            b_times_c_pid = fork();
            if(b_times_c_pid)
            {
                    d_times_e_pid = fork();
                    if(d_times_e_pid)
                    {

                        waitpid(a_plus_pid, &a_plus, 0);
                        waitpid(b_times_c_pid, &b_times_c, 0);
                        waitpid(d_times_e_pid, &d_times_e, 0);

                        //Supposed to print 0.50
                        printf("%d" , ((a + (b_times_c))) / d_times_e);

                    }
                    else
                    {
                        exit(d*e);
                    }
            }
            else
            {
                exit(b*c);
            }
        }
        else
        {
             exit(a);
        }

}