linux多进程并发服务器的accept返回-1
1.printf要注意缓冲区,fork前主进程通过’\n’清理了部分缓冲区,但是留下了部分缓冲区,缓冲区内容就是a is 0,所以fork()时这部分被复制到了子进程的空间,随下一次请缓冲区被打印.若不对-1加以判断,父进程将继续fork并且创建错误的子进程,若新的子进程也没有阻塞而是0=read()后退出,那么上述过程将陷入循环,导致程序执行出现问题.3.子进程内,a的值不同,但是&a的值即a地址相同,这是因为&a表示虚拟内存的地址,不同进程的a真正对应的物理内存地址是不同的。
原创
2023-04-05 16:36:55 ·
290 阅读 ·
1 评论