小编nic*_*ick的帖子

vfork() 调用后退出和返回的区别

我有一个行为未定义的程序( vfork() 使用不当):

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

int main ( int argc, char *argv[] )
{
    pid_t pid;
    printf("___________befor fork______________.\n");
    if((pid=vfork()) < 0)
        perror("fork");
    else if(pid > 0)
        printf("parent\n");
    else
        printf("child\n");

    printf("pid: %d, ppid: %d\n", getpid(), getppid());

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

如果我使用exit(0)函数而不是返回 - 输出是:

___________befor fork______________.
child
pid: 4370, ppid: 4369
parent
pid: 4369, ppid: 2924
Run Code Online (Sandbox Code Playgroud)

如果我使用return 0- 我会得到这样的无限输出:

___________befor fork______________.
child
pid: 4455, ppid: 4454
parent
pid: 4454, ppid: 2924
___________befor fork______________.
child …
Run Code Online (Sandbox Code Playgroud)

c posix fork multiprocessing

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

QDateTime到QString,Qt3中的毫秒数

在Qt3中是否有办法将QDateTime转换为QString并返回QDateTime,以便最终QDateTime将包含有关毫秒的信息?

谢谢.

qstring qt qt3 qdatetime

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

C/C++中的unsigned unsigned long

  1. C++中是否有可移植的unsigned long?
  2. 有没有办法制作便携式结构?

在我的家庭机器上,unsigned long是8个字节.在工作机上它的4个字节.当您在家中开始编写工作时,会出现通过网络传输数据的正确性问题.

谢谢.

c c++ portability

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

左移魔法

我有代码:

signed short a = -32740;
float c;
float b;
b = (signed short)(a << 4);
c = a << 4;
printf("(signed short)(a << 4): %f\n", b);
printf("(a << 4): %f\n", c);
Run Code Online (Sandbox Code Playgroud)

输出:

(signed short)(a << 4): 448.000000
(a << 4): -523840.000000
Run Code Online (Sandbox Code Playgroud)

为什么16个高级寄存器在shift(c = a << 4;)后没有复位?

程序在x86机器上使用32位linux执行.

c c++

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

标签 统计

c ×3

c++ ×2

fork ×1

multiprocessing ×1

portability ×1

posix ×1

qdatetime ×1

qstring ×1

qt ×1

qt3 ×1