C & Internet



  • tobidope schrieb:

    Aber leider kann ANSI C das nicht ohne das Betriebsystem und einige Zeilen Assembler. Also ab nach WinAPI oder Linux/Unix.

    C + einige Zeilen Assembler == Betriebssystem
    
    if(strcmp(poster.os, "Windows") == 0)
        goto WinAPI;
    else
        goto Linux/Unix;
    

    Hast du das jetzt verstanden, oder soll ich dir ein Bild malen?

    Gruß Tobias

    sorry aber: 😃 *g* LOL
    1. zeig mir das executable format das auf allen os gestartet wird.
    2. woher willst du wissen das der assembler für die entsprechende architektur korrekt ist?
    3. zeig mir dem assembler code mit dem man unterscheiden kann welches os benutzt wird.



  • @EinNiemand:
    Sorry, dass dies hier so ausartet.

    Stell deine Frage bitte nochmal im passenden Forum.

    Also je nachdem welches Betriebssystem du benutzt im Linux, WinAPI oder Rund Um die Programmierung Forum.

    Danke!

    @tobidope:
    bitte sieh doch ein, dass du im prinzip zwar recht hast, es aber absolut sinnlos ist. Denn jede(!) Funktion verlangt irgendwo einmal Maschinencode.

    Insofern hast du natürlich recht, allerdings kann man so auf jede Frage antworten - und das ist nun wirklich nicht sinn der sache.

    Stell dir mal das vor:

    Q: Ich will eine Zeichenkette in eine Andere kopieren
    A: Da musst du dir mit Assembler helfen oder Syscalls machen - das hängt aber vom verwendeten OS/Platform ab

    Die Antwort ist richtig, aber der Fragesteller kann nichts damit anfangen.
    ein einfaches: strcpy() hätte ja auch genügt. Auch wenn strcpy() intern vermutlich mit Assembler implementiert ist...



  • @Shade of Mine: Das was du gerade schon sagtest, nämlich in ein anderes Forum zu gehen, habe ich bereits in meinem ersten Post gesagt. Und Zeichenketten kopieren funtioniert mit ANSI-C. "Übers Internet schicken" von Daten aber nicht. Nichts anderes habe ich gesagt. Und wenn man nicht lesen kann, dann sollte man sich schon überlegen, was man sagt. Oder bin ich hier im falschen Forum? Ging es hier nicht um ANSI-C?

    @japro: Lerne lesen! Ernsthatft, ich habe nichts von Executables gesagt. Ich habe gesagt, dass man mit "C + Assembler" ein Betriebssystem hat. Wobei Assembler natürlich plattformabhängig ist. Gerade deshalb entstand doch die Sprache C! Abstraktion von der Plattform!

    Frohe Weihnacht und mehr Leseverständnis für Deutschland.



  • @tripode
    Tschuldige. Das ANSI hatte ich wohl überlesen (was ja einem Normalsterblichen auch mal passieren kann).



  • tobidope schrieb:

    @Shade of Mine: Das was du gerade schon sagtest, nämlich in ein anderes Forum zu gehen, habe ich bereits in meinem ersten Post gesagt.

    Ja, aber ich wollte mich zusätzlich ja auch noch dafür entschuldigen, dass der Thread hier den bach runter geht 😞

    Und Zeichenketten kopieren funtioniert mit ANSI-C.

    Nein. Denn irgendwo wird Maschinencode erzeugt, meisstens ist strcpy sowieso in ASM implementiert.

    "Übers Internet schicken" von Daten aber nicht.

    Oh doch!
    puts("Hello World\n"); kann Daten übers Internet senden.
    Denn stdout muss nur auf einen 'Socket stream' zeigen.

    Und wenn man nicht lesen kann, dann sollte man sich schon überlegen, was man sagt.

    Oh, ich kann lesen...

    Oder bin ich hier im falschen Forum? Ging es hier nicht um ANSI-C?

    Und jetzt erklär mir mal, was Assembler mit ANSI C zu tun hat?
    Nichts!

    Du bist abgeschweift, nicht wir.

    Frohe Weihnacht und mehr Leseverständnis für Deutschland.

    Und n bisschen mehr Einsicht für tobidope.



  • Nun wenn man ANSI-C opaque betrachtet, dann kann man damit einiges machen. Anderes nicht. strcpy kann man damit auf jeden Fall ohne Hilfe eines plattformabhängigen Assembler impementieren.

    char *strcpy(char *dest, const char *src)
    {
        char *temp = dest;
    
        while(*temp++ = *src++)
            ;
    
        return dest;
    }
    

    Alles was mit E/A zu tun hat, wird von ANSI-C trotzdem gekapselt, aber nur Datei E/A. Da der Ursprungsposter aber von ANSI-C sprach, habe ich ihm gesagt, dass das in ANSI-C nicht funktioniert. Also ab nach Unix/Linux, WinAPI. Abgeschweift wäre ich, wenn ich ihm jeweilige API-Funktionen genannt hätte.



  • Das ist doch eigentlich jetzt alles gar nicht wichtig.

    Der Threadersteller wollte wissen, ob man mit ANSI-C (wobei ich immer noch vermute, dass er einfach C meint, also !C++) Daten übers Internet versenden kann und er wollte wissen wie.

    Nur weil das jetzt nichts mit ANSI-C zu tun hat, kann man ihm ja trotzdem mal einen Tipp geben und genau das mache ich jetzt auch.

    @EinNiemand
    Such mal in einer Suchmaschine nach socket.h, das hilft dir sicher weiter.



  • tobidope schrieb:

    TriPhoenix schrieb:

    Dann sag aber bitte korrekt, dass das ANSI C nicht ohne das Betriebssystem oder einige Zeilen Assembler kann. Im übrigen ist das dann strenggenommen auch nicht mehr ANSI C...

    Was genau möchtest du mir sagen? Was ist strenggenommen kein ANSI C und ...?

    Dass man nicht Betriebssystem UND Assembler braucht, sondern nur eines von beiden. Und wenn man eines von beiden dazunimmt, hat man sowieso kein ANSI C mehr.



  • tobidope schrieb:

    Nun wenn man ANSI-C opaque betrachtet, dann kann man damit einiges machen. Anderes nicht. strcpy kann man damit auf jeden Fall ohne Hilfe eines plattformabhängigen Assembler impementieren.

    [/quote]

    Daten übers Internet schicken auch:

    puts("Hello World\n");
    

    Es kommt nur auf den Ausgabestrom an...

    lassen wir es jetzt gut sein?



  • Shade Of Mine schrieb:

    tobidope schrieb:

    Nun wenn man ANSI-C opaque betrachtet, dann kann man damit einiges machen. Anderes nicht. strcpy kann man damit auf jeden Fall ohne Hilfe eines plattformabhängigen Assembler impementieren.

    Daten übers Internet schicken auch:

    puts("Hello World\n");
    

    Es kommt nur auf den Ausgabestrom an...

    lassen wir es jetzt gut sein?[/quote]

    Ok, aber das hat dann wieder was mit dem Betriebssystem zu tun, das eine weitere Abstraktionsstufe an Dateien zu bieten hat. Und das nur unter unixoiden Systemen. Aber damit dann EOT



  • tobidope schrieb:

    @japro: Lerne lesen!

    schn mal daran gedacht, dass es auch an dir liegen könnte, wenn andere dich nicht verstehen?

    C + einige Zeilen Assembler == Betriebssystem 
    
    if(strcmp(poster.os, "Windows") == 0) 
        goto WinAPI; 
    else 
        goto Linux/Unix;
    

    in dem fall verstehe ich das da nicht so ganz. klar mit assembler und c kann man theoretisch ein OS schreiben. aber:
    1. warum braucht der entwickler einer anwendung dann assembler?
    2. woher nehm ich die variable poster.os?

    oder ist das so eine witzige art von pseudocode der eigentlich als erkärung dienen sollte?

    ich sehe einfach nicht ein wozu man assembler braucht, um mit internet zu arbeiten.

    mal mir ein bild :D, bitte.

    mfg japro



  • /* Pseudo-Code */
    poster = "EinNiemand"; /* derjenige, der den Thread gestartet hat */
    

    Ich habe ihm zu verstehen gegeben, dass er sich in Art von Linus Torvald mittels C und Assembler ein OS mit "Internetprotokoll" schreiben kann, oder sich Richtung a) WinAPI oder b) Linux/Unix bewegen soll.


Anmelden zum Antworten