<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>P {MARGIN-TOP: 0mm; MARGIN-BOTTOM: 0mm}</style>
</head>
<body>
<div style="FONT-FAMILY: Arial; FONT-SIZE: 10pt" id="ezFormProc_div">
<div style="FONT-FAMILY: Arial" id="msgbody">
<div>
<div style="LINE-HEIGHT: 15pt"><br>
Hi,</div>
<div style="LINE-HEIGHT: 15pt">I've had this question for some time past and I would like to know the answer now..</div>
<div style="LINE-HEIGHT: 15pt">I wanted to follow a printf in busybox but couldn't find the source of the printf function.</div>
<div style="LINE-HEIGHT: 15pt">Then I throught probably the printf is provided by the system library where printf is connected to proper linux system call. (Is it printk?)</div>
<div style="LINE-HEIGHT: 15pt">So I checkd LD_LIBRARY_PATH of my shell and found libc.so under /lib. I could see by 'nm libc.so' that printf is in the library.</div>
<div style="LINE-HEIGHT: 15pt">But where can I see the printf source? Is it under gcc source? in GNU sdk, under glibc-2.16.0, I tried
</div>
<div style="LINE-HEIGHT: 15pt">#&nbsp;grep 'int printf(' * -r</div>
<div style="LINE-HEIGHT: 15pt">but nothing comes up.</div>
<div style="LINE-HEIGHT: 15pt">In linux kernel source doing the same gaves me</div>
<div style="LINE-HEIGHT: 15pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arch/x86/boot/boot.h:int printf(const char *fmt, ...);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arch/x86/boot/printf.c:int printf(const char *fmt, ...)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arch/um/include/shared/kern.h:extern int printf(const char *fmt, ...);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arch/um/os-Linux/user_syms.c:extern int printf(const char *, ...);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arch/powerpc/boot/stdio.h:extern int printf(const char *fmt, ...) __attribute__((format(printf, 1, 2)));</div>
<div style="LINE-HEIGHT: 15pt">so printf is defined only for x86 architecture?</div>
<div style="LINE-HEIGHT: 15pt">I understand printf is for user program not kernel, so I want to see how the printf is connected to kernel print function. (the system call, I know in sparc, linux system call is trap 0x90, function 59 when using assembly)</div>
<div style="LINE-HEIGHT: 15pt">Where can I find the printf (user program) source?</div>
<div style="LINE-HEIGHT: 15pt">Thanks in advance.</div>
<div style="LINE-HEIGHT: 15pt">Chan</div>
<div style="LINE-HEIGHT: 15pt">&nbsp;</div>
<div style="LINE-HEIGHT: 15pt">&nbsp;</div>
<div style="LINE-HEIGHT: 15pt"><br>
&nbsp;</div>
<div style="LINE-HEIGHT: 15pt" id="MailSign"></div>
<div style="LINE-HEIGHT: 15pt"><br>
</div>
</div>
</div>
</div>
</body>
</html>