Wie schreibe ich ein Zeichen in die Standardausgabe in C ohne stdio.h oder andere Bibliotheks-Header-Dateien zu verwenden?

8

putchar(char) schreibt ein Zeichen in die Standardausgabe und wird normalerweise von stdio.h bereitgestellt.

Wie schreibe ich ein Zeichen in die Standardausgabe ohne mit stdio.h oder einer anderen Standardbibliotheksdatei (das heißt: nein #include : s erlaubt)?

Oder anders formuliert, wie implementiere ich meine eigenen putchar(char) mit null #include -Anweisungen?

Das möchte ich erreichen:

%Vor%

Klarstellungen:

  • Bitte beachten Sie: Nein #include : s erlaubt. Nicht einmal ein einziger: -)
  • Die Lösung muss nicht muss portabel sein (Inline-Assembler ist also in Ordnung), aber es muss mit gcc unter MacOS X kompilieren.

Definition der richtigen Antwort:

  • Eine funktionierende putchar(char c) -Funktion. Nicht mehr und nicht weniger: -)
knorv 12.01.2013, 17:59
quelle

4 Antworten

2
%Vor%     
mark4o 12.01.2013, 18:58
quelle
6

Auf einem POSIX-System wie Linux oder OSX können Sie das write Systemaufruf:

%Vor%

Unter Windows gibt es ähnliche Funktionen. Wahrscheinlich müssen Sie die Konsole mit OpenFile <öffnen / a> und dann WriteFile .

    
Some programmer dude 12.01.2013 18:02
quelle
6

Es gibt keine plattformunabhängige Möglichkeit, dies zu tun.

Natürlich können Sie dies auf jeder angegebenen -Plattform erreichen, indem Sie die Implementierung von stdio.h (und alles, auf das sich diese wiederum stützt) erneut implementieren / kopieren und einfügen. Aber das wird nicht tragbar sein. Es wird auch nicht nützlich sein.

    
Oliver Charlesworth 12.01.2013 18:02
quelle
0

Da das Bereitstellen einer vollständigen Lösung wahrscheinlich unsportlich ist, ist dies das nächstbeste ... welches der Quellcode für Apples Implementierung - das ist Open Source.

Ich denke, dies auf ein Minimum zu reduzieren, ist eine Übung für das OP. Apple hat freundlicherweise sogar eine XCode-Projektdatei zur Verfügung gestellt.

    
marko 12.01.2013 18:39
quelle

Tags und Links