当前位置:  技术问答>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.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。














站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,