当前位置: 技术问答>linux和unix
***********我又来求指点了*********
来源: 互联网 发布时间:2017-05-10
本文导语: #include #include #include #include #include int main(int argc, char* argv[]) { int i = 0; pid_t pid = -1; fprintf(stdout, "parent pid[%d], i[%d]n", getpid(), i); if((pid = vfork()) 0) { f...
#include
#include
#include
#include
#include
int main(int argc, char* argv[])
{
int i = 0;
pid_t pid = -1;
fprintf(stdout, "parent pid[%d], i[%d]n", getpid(), i);
if((pid = vfork()) 0)
{
fprintf(stdout, "after fork, parent pid[%d], i[%d]n", getpid(), i);
}
else
{
system("find . -type f");
}
fprintf(stdout, "process end. pid[%d], i[%d]n", getpid(), i);
return 0;
}
运行结果:
parent pid[20000], i[0]
./core.17552
./libshow.a
./dup2.c
./csdn.c
./main
./base/baseMath.o
./base/baseMath.c
./base/libbaseMath.a
./base/libbaseMath.so
./base/baseMath.h
./test.cpp
./stat.c
./power.c
./tag.c
./libshow.so
./unlink
./unlink.c
./book.c
./show.o
./a.bat
./show.c
./reservword.c
./fileop.c
./code.c
process end. pid[20001], i[0]
after fork, parent pid[20000], i[0]
process end. pid[20000], i[0]
Segmentation fault (core dumped)
为什么最后core了。。。。?!
|
还有一种改法就是把vfork改成fork也是安全的。
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。