コード例 #1
0
ファイル: task2.c プロジェクト: logicalelevation/homework
int main()
{
    printf("Program begins here!\n");
    printParent();

    pid_t pid1, pid2, pid3;
    int a = 2, b = 2, c = 2, d = 2, e = 2, f = 2;
    int result, rtval1, rtval2, rtval3;

    pid1 = fork();

    if(pid1 == 0)
    {
        printChild();
        return add(a, b);
    }
    else
    {
        printf("I just finished forking pid1.\n");
        waitpid(-1, &rtval1, 0);
        rtval1 = WEXITSTATUS(rtval1);
        printParent();

        pid2 = fork();
        if(pid2 == 0)
        {
            printChild();
            return add(c, b);    
        }
        else
        {
            printf("I just finished forking pid2.\n");
            waitpid(-1, &rtval2, 0);
            rtval2 = WEXITSTATUS(rtval2);
            printParent();

            pid3 = fork();
            if(pid3 == 0)
            {
                printChild();
                return divi(e, f);
            }
            else
            {
                printf("I just finished forking pid3.\n");
                waitpid(-1, &rtval3, 0);
                rtval3 = WEXITSTATUS(rtval3);
                printParent();
            }
        }
    }
    result = (rtval1 * rtval2) - rtval3;
    //printf("%d, %d, %d\n", rtval1, rtval2, rtval3);  // debug
    printf("The result of doing (%d + %d) * (%d + %d) - (%d / %d) is: %d\n", a, b, c, d, e, f, result);
    return 0;
}
コード例 #2
0
ファイル: Json.c プロジェクト: ZCXL/CommunicateClient
void jsonPrint(PJsonObject object){
    while(object){
        if(object->value_array&&object->type==ARRAY){
            printArray(object);
        }
        if(object->value_child&&object->type==OBJECT){
            printf("%s:\n\t",object->key);
            printChild(object->value_child);
        }
        switch(object->type){
            case BOOL:
                printf("%s:%s\n",object->key,(object->value_boolean==0?"false":"true"));
                break;
            case DOUBLE:
                printf("%s:%f\n",object->key,object->value_double);
                break;
            case INTEGER:
                 printf("%s:%d\n",object->key,object->value_integer);
                break;
            case STRING:
                printf("%s:\"%s\"\n",object->key,object->value_string);
                break;
            default:
                break;
        }
        object=object->next;
    }
}