+ -
当前位置:首页 → 问答吧 → 远程shell的问题

远程shell的问题

时间:2010-11-15

来源:互联网

写了一个远程shell的程序。shell运行是通过如下代码:
pid_t pid;
int status;
pid = fork ();
if( pid == 0)
{
        execl("/bin/sh","/bin/sh",(char*)0);
}
else if (pid < 0)
{
        return -1;
}
else
{
        wait(&status);
        if(! WIFEXITED(status))
                return -1;
        else
                return 1;
}
我是希望在另外一端(windows),按下ctrl+c时,shell会返回-1。但是在机器上尝试过多次,返回值依然不是-1,希望大家帮助一下。

作者: hmonster   发布时间: 2010-11-15

本帖最后由 pagx 于 2010-11-15 22:58 编辑

Ctrl + C 会导致 shell 退出么? 不退出哪有返回值的. 另外网络中,将 Ctrl + C 解析成 SIGINT 是有伪终端负责的。如果你没有使用伪终端,那么Ctrl + C只是普通的数据流而已。

作者: pagx   发布时间: 2010-11-15