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

极富挑战性的问题啊!popen导致send函数失败的问题。

    来源: 互联网  发布时间:2016-10-12

    本文导语:  下面是最简单的服务器、客房端程序的代码。现在的问题是,如果不用popen,直接返回客户端一个字符串,没有问题;用popen执行“rm /root/bbb.txt”,当这个文件存在时,也没有问题。当它不存在,send(temp_sock_descriptor,b...

下面是最简单的服务器、客房端程序的代码。现在的问题是,如果不用popen,直接返回客户端一个字符串,没有问题;用popen执行“rm /root/bbb.txt”,当这个文件存在时,也没有问题。当它不存在,send(temp_sock_descriptor,bufSendToClient,len,MSG_NOSIGNAL )便会失败。而且如果服务器程序不是以服务形式运行(即守护进程)时,则没有问题。

这个问题难就难在为什么popen会导致看起来不相干的send函数失败。

server.c内容:
#define _GNU_SOURCE
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define LINELEN  4096 //The max length of the content of one line of the config file.
#define NAMELEN  64 //The max length of the Brief name.
#define CMDLEN  256 //The max length of the command to executed.
#define MAXLEN_MSG_RECV 1024 //The max length of the message from the client.
#define MAXLEN_MSG_SEND 5120 //The max length of the message send to client.

int port = 8082;
void DoTask();
void ExitOnError();

int main(void)
{
pid_t pid, sid;
pid = fork();

if( pid>0 ){
exit( EXIT_SUCCESS );
}

if( ( sid=setsid() )

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


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

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

    浙ICP备11055608号-3