tipos lenguaje imprimir funciones ejemplos datos caracteres cadenas cadena arreglo c printing printf character putchar

lenguaje - scanf en c



¿Cómo va a imprimir cualquier charcater, cadena o valor de una variable sin funciones de biblioteca en C? (3)

Si, por ejemplo, no debo usar funciones de biblioteca estándar como printf, putchar, entonces, ¿cómo puedo imprimir un personaje en la pantalla fácilmente? ¿Hay alguna manera fácil de hacerlo? No sé mucho sobre las llamadas al sistema y si tengo que usarlas, ¿cómo?

Entonces, ¿alguien puede aconsejar una forma fácil de imprimir sin utilizar las funciones de la biblioteca?


Bueno, gracias a todos por sus respuestas. Encontré una respuesta simple por un comentario del Sr. Hao debajo de la pregunta. su respuesta es un programa simple como este

Turbo C (programa DOS):

char far* src = (char far*) 0xB8000000L; *src = ''M''; src += 2; *src = ''D'';

o prueba esto: http://en.wikipedia.org/wiki/Brainfuck :) - // Hao (hace una hora)

Lo probé en Turbo C y está funcionando. Quería una solución simple como esta y quería aceptarla como una respuesta correcta, pero él (Hao) la dio como un comentario, así que la pegué aquí para que otros usuarios supieran de esto en su nombre y la aceptaron. Una vez más gracias Sr. Hao.


En Linux, puede usar la llamada al sistema de write :

write(1, "hello/n", 6); // write hello/n to stdout

Si no puede obtener suficiente, puede ir un paso más abajo, invocando el syscall genéricamente:

syscall(__NR_write, 1, "hello/n", 6);

Vale la pena saber acerca de strace , que puede usar para ver qué syscalls usa cualquier programa en particular mientras se ejecuta. Pero tenga en cuenta que para "algún analizador simple", no es necesario utilizar llamadas al sistema sin formato. Mejor usa las funciones de la biblioteca c.

Por cierto, busque las funciones WriteFile y GetStdHandle si desea hacer lo anterior en Windows sin utilizar la biblioteca estándar c. Aunque no será tan l33t como la solución de Linux.


En la norma C, no puedes. La única E / S definida en C es a través de las funciones de biblioteca estándar C.

En una plataforma determinada, puede haber formas de hacerlo:

  • Haga llamadas al kernel directamente. Probablemente necesite escribir algún ensamblaje en línea para hacer esto. Puede hacer la llamada de write de litb directamente, sin usar su biblioteca de C. Toma la fuente de tu biblioteca C para ver cómo se hace.
  • Escribir directamente en el búfer de cuadros. Los sistemas operativos multiusuario a menudo no permiten esto (al menos sin hacer ninguna llamada a la biblioteca / kernel).

A menos que esté escribiendo su propia biblioteca C, no estoy seguro de por qué querría hacer esto.