同题

解决方案 »

  1.   

    exit ---- 退出  结束return   ---  表示当前这一函数,可能是主函数,也可能是某个函数结束,并且要返回一个类型的值给调用它得地方。
      

  2.   

    那么
    exit(1)与return 1
    又有什么区别?
      

  3.   

    exit不管经过了几层调用都结束函数,继而结束主函数main或WinMain,return 是由被调函数返回调用它的函数。
      

  4.   

    exit:退出程序
    return:退出当前函数
      

  5.   

    是呀,exit更深层次的直接退出全部。
      

  6.   

    return 1返回函数的值为1。exit只知道是退出。
      

  7.   

    那么exit(0)与exit(1)
    分别有什么含义?
    谢谢大家
      

  8.   

    exit是进程终止的函数调用,参数是进程退出状态值,exit会对进程做清除处理,关闭所有io流,关闭所有句柄、描述字,然后通过_exit系统调用进入内核,返回startup启动程序,同时也将状态参数传回。
    有exit调用就不是异常退出,所谓进程异常退出都是未经exit而结束,比如abort之类,或是被其他进程term掉,状态参数是提供给操作系统的进程终止状态,返回给启动进程的进程,unix里一般是返回给shell,windows则是返回给explorer
      

  9.   

    exit() 一般情况返回0是正常,返回其它数字异常,这个号码是程序员定义的
    这个返回值可以通过系统的shell得到,当然也可以通过IPC得到
    你可以写内核程序来识别这些返回值作出响应的动作:)
      

  10.   

    例子
    主程序void main( VOID )
    {
        STARTUPINFO si;
        PROCESS_INFORMATION pi;    ZeroMemory( &si, sizeof(si) );
        si.cb = sizeof(si);
        ZeroMemory( &pi, sizeof(pi) );    // Start the child process. 
        if( !CreateProcess( NULL, // No module name (use command line). 
            "d:\\a.exe", // Command line.
            NULL,             // Process handle not inheritable. 
            NULL,             // Thread handle not inheritable. 
            FALSE,            // Set handle inheritance to FALSE. 
            0,                // No creation flags. 
            NULL,             // Use parent's environment block. 
            NULL,             // Use parent's starting directory. 
            &si,              // Pointer to STARTUPINFO structure.
            &pi )             // Pointer to PROCESS_INFORMATION structure.
        ) 
        {
            ErrorExit( "CreateProcess failed." );
        }    // Wait until child process exits.
        WaitForSingleObject( pi.hProcess, INFINITE );
        DWORD exitcode;
        GetExitCodeProcess( pi.hProcess, &exitcode );
        printf( "程序a.exe 退出值为 %d\n", exitcode );
        // Close process and thread handles. 
        CloseHandle( pi.hProcess );
        CloseHandle( pi.hThread );
    }a.c
    int main()
    {
         return 0;
         //把return 0;以后分别改为return 1,exit( 0 ), exit( 1 )再运行主程序
    }