473,403 Members | 2,293 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,403 software developers and data experts.

printf

Hi,

Where can I find the source for printf ?

John
Nov 14 '05 #1
8 4975
Hi John,

Your best bet is to download libc and grab the source from there.
However, I'm willing to bet it's fairly complex and not so trivial.
-Adam Roan

Nov 14 '05 #2
"Johan" <me@knoware.nl> writes:
Where can I find the source for printf ?


Whose version of printf()?
--
"I don't have C&V for that handy, but I've got Dan Pop."
--E. Gibbons
Nov 14 '05 #3
Johan wrote:
Hi,

Where can I find the source for printf ?


You can find a rudimentary implementation on p156 of
K&R2. Admittedly it calls the real printf to do much of the
work, but there's enough there to give you the essence.

Or you could get a copy of the GNU library source.

Here's the source provided by Microsoft:

int __cdecl printf (
const char *format,
...
)
/*
* stdout 'PRINT', 'F'ormatted
*/
{
va_list arglist;
int buffing;
int retval;

va_start(arglist, format);

_ASSERTE(format != NULL);

_lock_str2(1, stdout);

buffing = _stbuf(stdout);

retval = _output(stdout,format,arglist);

_ftbuf(buffing, stdout);

_unlock_str2(1, stdout);

return(retval);
}

Not much help, is it?
Nov 14 '05 #4
"Johan" <me@knoware.nl> wrote:
Where can I find the source for printf ?


That depends on what you need it for. If you want the source for _a_
version of printf(), at least one, probably several, are available on
the web. Of course, they're likely to be pretty much implementation-
specific, so they might be useless with your compiler. If you want the
source for _your_ version of printf(), you'll have to ask your vendor.

Richard
Nov 14 '05 #5
Somewhat related to the FAQ:

18.13: Where can I find the sources of the standard C libraries?

A: The GNU project has a complete implementation at
http://www.gnu.org/software/libc/. Another source (though not
public domain) is _The Standard C Library_, by P.J. Plauger (see
the Bibliography). See also questions 18.9b, 18.15c, and 18.16.

Many C compilers come with the runtime source for their own
implementation of the standard C libraries.

Nov 14 '05 #6
"Johan" <me@knoware.nl> writes:
Where can I find the source for printf ?


I wrote a simple implementation that should be reasonably
portable for Pintos, my instructional operating system. It does
not support floating-point formatting, it has a few limitations
that are probably not entirely standard compliant, and its code
is not entirely comp.lang.c compliant. Given those constraints,
you are welcome to take a look at it. It is in file
pintos/src/lib/stdio.c in the tar archive available at
http://www.stanford.edu/class/cs140/.../pintos.tar.gz
--
"If I've told you once, I've told you LLONG_MAX times not to
exaggerate."
--Jack Klein
Nov 14 '05 #7
Sorry for my oxmoron. Sigh. :P

Nov 14 '05 #8
Ben Pfaff <bl*@cs.stanford.edu> writes:
"Johan" <me@knoware.nl> writes:
Where can I find the source for printf ?


I wrote a simple implementation that should be reasonably
portable for Pintos, my instructional operating system. It does
not support floating-point formatting, it has a few limitations
that are probably not entirely standard compliant, and its code
is not entirely comp.lang.c compliant. Given those constraints,
you are welcome to take a look at it. It is in file
pintos/src/lib/stdio.c in the tar archive available at
http://www.stanford.edu/class/cs140/.../pintos.tar.gz


Come to think of it, I can even provide a direct link:
http://www.stanford.edu/class/cs140/...rc/lib/stdio.c
--
Ben Pfaff
email: bl*@cs.stanford.edu
web: http://benpfaff.org
Nov 14 '05 #9

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

11
by: Grumble | last post by:
Hello, I have the following structure: struct foo { char *format; /* format string to be used with printf() */ int nparm; /* number of %d specifiers in the format string */ /* 0 <= nparm <=...
8
by: aditya | last post by:
hi, Can anybody please tell me that how the following printf(...) statement works- main(){ int d=9; printf("%d",printf("%d")); return 0;
7
by: teachtiro | last post by:
Hi, 'C' says \ is the escape character to be used when characters are to be interpreted in an uncommon sense, e.g. \t usage in printf(), but for printing % through printf(), i have read that %%...
188
by: infobahn | last post by:
printf("%p\n", (void *)0); /* UB, or not? Please explain your answer. */
29
by: whatluo | last post by:
Hi, c.l.cs I noticed that someone like add (void) before the printf call, like: (void) printf("Timeout\n"); while the others does't. So can someone tell me whether there any gains in adding...
4
by: pai | last post by:
Hi , Can any one tell me how this statement of printf is behaving . how the last digit is printed int a=2,b=4,c=7; printf("%d",printf("%d %d:",a,b)); //answer to this was 2 4:3
11
by: timmu | last post by:
Someone asked me a question about integer division and printf yesterday, I tell him he should do a casting to float/double before you do any interger division. But he doesn't think so, so I try...
19
by: RedDevilDan | last post by:
I am working on a Memory Footprint Reduction project. I came across an idea to disable all printf statements so that less memory is required. In addition, when there is no single printf statement,...
34
by: Old Wolf | last post by:
Is there any possible situation for printf where %hd causes a different result to %d, and the corresponding argument was of type 'short int' ?
1
by: linq936 | last post by:
Hi, I read in many places that the string to be outputted by printf() must be ending with newline, for example, it should be printf("Hello World.\n"); instead of printf("Hello World.");
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.