首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >改变waitpid()的参数

改变waitpid()的参数
EN

Stack Overflow用户
提问于 2017-09-20 07:07:45
回答 1查看 109关注 0票数 0

我想知道您是否可以在需要连续变量输出( 0.50 )的情况下更改waitpid()的参数。但是,考虑到waitpid()只接受整数,当我尝试打印时,它会给我0。不知道如何解决这个问题,或者这是否是问题所在。

计算看起来(1+(2 * 3)/(2 * 7)) = 0.5

代码语言:javascript
复制
#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);
        }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-20 07:13:22

pid_t waitpid(pid_t pid, int *status, int options);的第三个参数是int,因此不能在那里传递浮点值。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46315402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档