Etwas an einen Char anhängen



  • Hi ich hab mir nen Rechner bei meinem Vater zugelegt und will ihn von meiner Mutter aus Fernsteuern. Ich möchte ne Remotecmd auf dem Rechner auf machen. Um die Ausgabe der Konsole bei meinem Vater ohen Pipes abzufangen, benutze ich diesen Code:

    char buf[30];
    string sbuffer (""); 
    
    .....
    
    while(kalle!=SOCKET_ERROR)
      {
        recv(connectedSocket,buf,30,0);
        strcat(buf," > C:\\temp.txt");
        system(buf);
        ifstream in("C:\\temp.txt");
        for (int a; a != 1024; ++a)
        {
        const char ch (in.get());
        sbuffer.push_back (ch);
        } 
        kalle=send(connectedSocket,sbuffer.c_str (),sbuffer.length(),0);
        cout << "inhalt der temp:" << sbuffer << endl;
    
      }
    

    Aber er hängt > C:\\temp.txt leider nicht richtig dran, das hat den Effekt das in der temp.txt nix steht.

    Wie mach ichs richtig?

    mfG AKiller



  • Was steht denn vor strcat in buf und was macht er dann daraus?



  • [quote="_matze"]Was steht denn vor strcat in buf

    Ich schätze, auf jeden Fall zu viel. Der recv liest ja bis zu 30 Bytes in einen 30 char großen Puffer. Da noch was anzuhängen, kann in die Hose gehen, wenn nicht sicher ist, daß rechtzeitig im Puffer ein '\0' vorkommt.


Log in to reply