Article View: es.comp.os.linux.programacion
Article #18723Re: Una pregunta
From: Cymoril sin patas
Date: Mon, 26 Jul 1999 00:00
Date: Mon, 26 Jul 1999 00:00
48 lines
2645 bytes
2645 bytes
A 6 Jul 1999 23:59:28 GMT, fserrano@debian.linux.es (Hue-Bond)
escribiste:
>El Wed, 30 Jun 1999 15:42:59 +0200, Juanjo <jajs@retemail.es> nos contaba:
>>
>>Aunque lo compiles est�ticamente, un printf siempre
>>va a hacer la llamada al sistema write
> Prrr! Ya me he perdido. �Est� eso en la Gu�a del Programador
> Linux? (s�, todav�a no me la he le�do :-DD).
A ver. Cuando tu llamas a printf, printf llama al c�digo de la
librer�a est�ndar para imprimir en pantalla, y es este el que har�
luego la escritura en pantalla o la llamada pertinente a quien tenga
que escribir en ella. Entonces considera esto:
hola.c
void main(void)
{
printf("Hola mundo\n");
}
Si lo compilas para DOS, en el ejecutable obtenido printf llamar� al
c�digo de la librer�a est�ndar, ensamblador puro, que coger� la
memoria de video y le pondr� esa l�nea as� por la face. Si adem�s, la
escritura es sobre un fichero, entonces el tema se complica porque
llamar� al DOS para abrir el fichero, escribir en �l, etc y tendr� que
convertir \n en un retorno de carro y un avance de l�nea..
Si lo compilas bajo linux, el c�digo printf llamar� al kernel para
hacer un write en la terminal pertinente. Si la escritura es sobre un
fichero, llamar� al kernel para abrir el fichero, escribirlo, no
convertir� \n en CR+LF sino s�lo en CR (o eso creo), etc.
Es decir, el c�digo printf depende de la plataforma y S.O. en la que
est�s. hola.c se puede compilar para linux o DOS o lo que sea, pero lo
que no puedes hacer es un ejecutable universal, aunque s� un c�digo
fuente medianamente portable a otros sistemas.
Saludines.
-----------------------------------------------
Cymoril sin patas
"I believe this is heaven to no one else but me, and I'll defend it as long as I can be left alone to linger in my own silence."
-----------------------------------------------
Technical Details
Message-ID:
<37caba9c.14384000@news.mad.ttd.net>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<377b4741.11028810@news.mad.ttd.net> <37780663.AB0D749E@retemail.es> <slrn7nin1s.28g.fserrano@debian.linux.es> <377A1EE3.B4B4B009@retemail.es> <slrn7o5630.15g.fserrano@debian.linux.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,b041316f863877bc X-Google-Attributes: gidf86c8,public From: ceinalem@thegym.net (Cymoril sin patas) Subject: Re: Una pregunta Date: 1999/07/26 Message-ID: <37caba9c.14384000@news.mad.ttd.net> X-Deja-AN: 505552952 Content-Transfer-Encoding: 8bit References: <377b4741.11028810@news.mad.ttd.net> <37780663.AB0D749E@retemail.es> <slrn7nin1s.28g.fserrano@debian.linux.es> <377A1EE3.B4B4B009@retemail.es> <slrn7o5630.15g.fserrano@debian.linux.es> Content-Type: text/plain; charset=ISO-8859-1 Organization: C.E.O.A.S.C.P. Mime-Version: 1.0 Reply-To: jcelisa@nexo.es Newsgroups: es.comp.os.linux.programacion