`
sogo6
  • 浏览: 113316 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用ACE_Process创建子进程

    博客分类:
  • ACE
 
阅读更多
int createProcess()
{
    int retCode = ACE::daemonize();
    std::cout << "retCode = " << retCode << ", lasterror = " << ACE_OS::last_error() << std::endl;

    std::string command = "ping -t 10.71.211.153";
    ACE_Process_Options startOption;
    ACE_Process startProcess;

    startOption.command_line("%s", command.c_str());
    startOption.handle_inheritence(FALSE);

    // 设置一下libpath
    /*
    const int ENVNUM = 1;  //需要设置的环境变量数为2
    ACE_TCHAR *pEnvString[ENVNUM+1] = {0}; //最后一个指向0
    std::string libPath = "";
#ifdef WIN32
    libPath = ::getenv("PATH");
#else
    libPath = ACE_OS::getenv("LD_LIBRARY_PATH");
#endif

    procOption.setenv();
    */

#ifdef WIN32
    ACE_HANDLE fd = ACE_OS::open("nul", O_RDWR);
#else
    int fd = ACE_OS::open("/dev/null", O_RDWR);
#endif
    //startOption.set_handles(fd, fd, fd);
    pid_t pid = startProcess.spawn(startOption);
    ACE_OS::close(fd);

    startProcess.wait();

    return 0;
}
分享到:
评论

相关推荐

    ACE的进程管理

    在创建子进程时,我们需要先创建一个`ACE_Process_Options`对象。这个对象可以用来设置新进程的各种属性,如命令行参数、环境变量、工作目录等。例如,在上述代码中,`options.command_line("%s %d", argv[0], 1)`就...

    ACE_OS命名空间函数参考文档

    - `ACE_OS::fork()`: 实现进程复制,创建子进程。 - `ACE_OS::waitpid()`: 等待子进程结束并返回其状态信息。 - `ACE_OS::execv()`: 用于替换当前进程的执行映像,执行新的程序。 3. **同步机制** - `ACE_Mutex...

    ACE_Thread.txt ACE_Thread.txt ACE_Thread.txt ACE_Thread.txt ACE_Thread.txt ACE_Thread.txt

    - **输出到文件**:通过创建`ofstream`对象并将其设置为`ACE_LOG_MSG`的输出流,可以将日志输出到指定的文件中。 ```cpp ACE_OSTREAM_TYPE *pOutput = new ofstream("log.txt"); ACE_LOG_MSG-&gt;msg_ostream...

    ACE_SOCK_TCP.rar_ACE_ACE TCP C++_ACE tcp_ace-6

    通过使用ACE_SOCK_Acceptor、ACE_SOCK_Connector和ACE_SOCK_Stream等类,开发者可以快速构建可靠、高性能的TCP服务,同时享受到ACE库带来的诸如异步I/O、异常处理等高级功能。对于需要在C++中进行网络编程的开发者而...

    ACE_server.rar_ACE server_ACE tcp_ACE_SERVER_ACE框架_ace server cl

    在“ACE_server.rar”这个压缩包中,包含的是使用ACE库搭建的一个TCP服务器和客户端框架。这个框架设计得简洁且易于扩展,适合开发者快速构建自己的网络服务。 首先,我们来了解一下ACE库的核心特性。ACE是一个开源...

    ACE_wrappers 5.7类库下载

    ACE_wrappers 5.7类库 使用CodeBlocks 8.02 gcc 3.4.5编译的Release版本 文件列表 libACE.dll.a,libACE.dll,libACE_ETCL.dll,libACE_ETCL_Parser.dll,libACE_Monitor_Control.dll

    ACE_MFC.rar_ACE_ACE_MFC

    例如,你可能会用到`ACE_MFC::Active_Object`来创建并发执行的任务,或者使用`ACE_MFC::Synch_Svc_Handler`来处理网络连接。同时,还需要关注线程安全、错误处理和性能优化等方面的问题。 总的来说,ACE MFC库为MFC...

    analysis of ACE_Task-putq with timeout=0 when queue is full on Linux platform.pdf

    ### 分析ACE_Task::putq在队列满且timeout为0的情况 #### 0. 引言 在本文中,我们将深入探讨调用`ACE_Task::putq`函数时的各种行为,尤其是当队列满且`timeout`参数设为0的情况。我们将分析涉及的多个层面,包括...

    ACE_Proactor网络通信示例代码

    这个压缩包包含的是一组使用ACE_Proactor实现TCP通信的示例代码,我们可以从这些文件中学习到如何在C++中运用ACE库来处理网络通信。 首先,`Tcp.cpp`可能是主程序入口,它可能负责初始化ACE_Proactor,并创建必要的...

    ace_send.rar_ACE_pop

    通过对"ace_send.cpp"的深入分析,我们可以学习到如何在C++中使用ACE库高效且安全地实现队列通信,这对于构建分布式系统和网络服务是非常有价值的。在实际项目中,这样的设计可以提高系统的可靠性和可扩展性。

    ACE_Reactor.rar_ACE reactor_ACE_React_ACE_Reactor_reactor

    在这个“ACE_Reactor.rar”压缩包中,包含的可能是关于如何使用ACE Reactor来构建服务器端程序的相关资料。 首先,我们来看看ACE Reactor的基本概念。Reactor模式是一种设计模式,它提供了一种处理异步事件和服务...

    Ace_Net.rar_ACE_ace 网络 _ace c++

    标题中的"Ace_Net.rar_ACE_ace 网络 _ace c++"明确指出这是一个与ACE网络编程相关的资源包,适用于C++开发者。 **ACE** 的主要特点包括: 1. **并发性**:ACE提供了线程、事件多路复用(如I/O复用、信号驱动I/O、...

    ACE.zip_ACE_ACE p_ACE source code

    压缩包内"ACE_wrappers"可能包含了ACE库的包装器,这些包装器通常是为了适应特定平台或语言而创建的,例如C++的包装器,使得ACE可以更方便地融入C++项目中。 总的来说,ACE库是一个功能丰富的通信库,它为开发者...

    ACE_Client_1.rar_ACE client

    在ACE_Client_1中,我们可能会看到如何创建和管理这些连接,以及如何设置安全性和可靠性参数。这使得开发者无需关心底层网络细节,只需关注上层业务逻辑。 再者,ACE支持事件驱动编程,允许程序对多个输入源进行...

    ACE_wrappers11111111

    "ACE_wrappers11111111"可能指的是ACE库的一个特定版本或者一个包含ACE库相关包装器的项目。由于描述和标签信息重复,没有提供具体细节,我将从一般性的ACE库知识点来展开讨论。 ACE库由Douglas C. Schmidt创建,...

    ACE_OS::mktime函数源代码

    static __time64_t __cdecl _make__time64_t ( struct tm *tb, int ultflag ) { __time64_t tmptm1, tmptm2, tmptm3; struct tm tbtemp; long dstbias = 0;... long timezone = 0;...= NULL ), EINVAL, ( ( __time64...

    ACE_TAO学习笔记

    - 添加环境变量 `ACE_ROOT` 和 `TAO_ROOT`,分别指向 `ACE_wrappers` 目录和其内部的 `TAO` 子目录。 - 在 `PATH` 环境变量中添加 `ACE_ROOT\bin` 的路径,以便于访问ACE的二进制文件。 ##### 4.2 编译TAO - **...

    ACE_wrappers22222222

    "ACE_wrappers"通常指的是ACE库的包装器,它包含了一组用于简化ACE使用和集成到其他项目的源代码和头文件。在您提供的信息中,“ACE_wrappers22222222”可能是对ACE库的一个特定版本或定制版的命名,可能包含了额外...

    ace_socket.zip_ace socket_linux 服务器

    4. **监听和接受连接**:使用`ACE_SOCK_Acceptor::open`方法开启监听,然后使用`accept`方法等待客户端连接。当有新的连接到达时,`accept`会返回一个新的`ACE_SOCK_Stream`对象,代表与客户端的连接。 5. **处理...

    ace_admin template

    7. Docs文件夹:包含文档和教程,帮助开发者更好地理解和使用Ace_Admin。 使用Ace_Admin模板时,开发者需要注意以下几点: 1. **依赖管理**:确保项目中已经正确引入了Bootstrap和jQuery,因为Ace_Admin依赖于这两...

Global site tag (gtag.js) - Google Analytics