当前位置:  技术问答>linux和unix

使用vfork(),后用return 出现段错误问题

    来源: 互联网  发布时间:2017-03-15

    本文导语:  #include #include #include main() {    pid_t pid;    int count=0;    pid=vfork();     count++;        printf("count=%d, pid=%dn",count,getpid());     return(0); } 运行出现count=1,pid=25127         count=1, pid=25126 后又显示“段错误...

#include
#include
#include
main()
{
   pid_t pid;
   int count=0;
   pid=vfork();
    count++;    
   printf("count=%d, pid=%dn",count,getpid());
    return(0);
}
运行出现count=1,pid=25127
        count=1, pid=25126 后又显示“段错误”
尝试把retrurn(0); 改为 exit(0);之后运行结果  count=1;pid=25145
                                            count=2;pid=25144
查看了有关return() 和 exit()还是不理解,求解释!!!!!!

|
NAME
       vfork - create a child process and block parent

SYNOPSIS
       #include 
       #include 

       pid_t vfork(void);

STANDARD DESCRIPTION
       (From  XPG4  /  SUSv2  /  POSIX draft.)  The vfork() function has the same effect as fork(), except that the behaviour is undefined if the process created by
       vfork() either modifies any data other than a variable of type pid_t used to store the return value from vfork(), or  returns  from  the  function  in  which
       vfork() was called, or calls any other function before successfully calling _exit() or one of the exec family of functions.

ERRORS
       EAGAIN Too many processes - try again.

       ENOMEM There is insufficient swap space for the new process.

LINUX DESCRIPTION
       vfork, just like fork(2), creates a child process of the calling process.  For details and return value and errors, see fork(2).

       vfork()  is  a special case of clone(2).  It is used to create new processes without copying the page tables of the parent process.  It may be useful in per-
       formance sensitive applications where a child will be created which then immediately issues an execve().

       vfork() differs from fork in that the parent is suspended until the child makes a call to execve(2) or _exit(2).  The child shares all memory with  its  par-
       ent, including the stack, until execve() is issued by the child.  The child must not return from the current function or call exit(), but may call _exit().

       Signal handlers are inherited, but not shared.  Signals to the parent arrive after the child releases the parent.


自己读?

|

#include
#include
#include

int main(int argc, char ** argv )
{
  int pid = fork();

    if (pid 

    
 
 

您可能感兴趣的文章:

  • 使用Runtime.exec("calc.exe")时,编译 出现错误,看不懂这个错误,怎么回事?
  • asp.net错误捕获(错误处理)page_error事件使用方法
  • ubuntu 10.10出现极其诡异的情况,使用gcc编译没任何反应,可以继续输入,但是不提示任何错误;使用make编译效果一样;
  • linux下使用易飞ERP系统出现“报表数据库连接错误!!”是怎么回事
  • 用popen,不能使用fseek了?Segmentation fault错误
  • sybase 的C 接口dbrpcparam 使用错误。。。
  • 我的网卡正确的加载和使用了。但是有错误!请指教
  • 在配置了DNS并启动服务后,使用host命令察看主机,为什么会出现SERVFAIL的错误?
  • 使用iceblood的qmail安装包为什么有如下错误提示
  • **紧急求助:使用xmanager连接linux出现得错误*****
  • 使用SSH登录另一台主机时,提示如下错误?!
  • mini2440中使用函数atan2得到错误结果
  • 使用Virtual PC安装Red Hat Linux 9.0时显卡识别错误,如何改回来?
  • 在Solaris下,使用xalan对XML转换时,出现错误,怎么办?同样程序在Windows可正常运行。
  • vim中使用ctags时总是报E426错误。。
  • 使用arm-linux-gcc编译,出现compilation of header file requested错误
  • C++使用OCCI连Oracle10g的错误
  • 关于resin和iis整合后,在使用asp程序时提示500内部服务器错误
  • busybox中的gzip运行过程中出现page fault错误,并指出出错的指针,但是怎么使用gdb调试,找到指针对应的语句?
  • 使用2.6.25内核request_firmware函数加载firmware失败,错误-2(ENOENT)
  • 几台机器做lvs,使用100M 网线连接,文件系统使用NFS共享,读写速度会出现问题吗?
  • 请教在cygwin下使用make命令出现的一个问题?
  • xmms使用出现问题!!!
  • JBuilder 6 在 winxp 下使用微软拼音输入法,输入中文。出现不正常。jbuilder.死锁
  • 为什么在cygwin 中使用 ldd 出现conmand not found 的提示呢?
  • 校园网使用DR.COM出现问题
  • 请教:多线程使用同一个socket进行数据收发会出现什么问题?
  • 使用tcpdump出现问题
  • 使用gdb时为什么调用list不出现代码
  • vim生成的.cpp~是什么文件?我使用vim编辑的时候出现了好多.cpp~文件
  • 使用tomcat出现的问题(socket write error),请教大家
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • php递归函数中使用return的注意事项
  • php递归函数使用return问题
  • C++函数中return语句的使用方法
  • 使用onsubmit return false 阻止form表单提交的方法介绍
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Python不使用print而直接输出二进制字符串
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • Office 2010 Module模式下使用VBA Addressof
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • c#中SAPI使用总结——SpVoice的使用方法
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍
  • 使用了QWidget的程序,如何使用后台程序启动它?
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • 共享内存一般是怎么使用的,是同消息队列配合使用么
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • Jsp可否使用带有GUI的JavaBean,如何使用?
  • c/c++预处理命令预#,##使用介绍
  • asp程序使用的access在Linux下如何使用!
  • 在div中使用css让文字底部对齐的方法
  • 新装的Linux使用root用户不能使用FTP?
  • Python namedtuple(命名元组)使用实例
  • LINUX下使用Eclipse,如何使用交叉编译器?


  • 站内导航:


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

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3