Query regarding thread safety of few libc stdio functions

Mayank Kumar mayank at microsoft.com
Mon Apr 25 06:24:12 PDT 2005


Hi All
Recently I have been looking at few freebsd libc functions and I found
That they were not thread safe. Can one of you please confirm.

Following functions in freebsd libc are not thread safe:-
1: vsnprintf
2: vsprintf
3: vsscanf
 theere are many more.

Functions like vfprintf are written as follows:-
-------------
int ret;

	FLOCKFILE(fp);
	ret = __vfprintf(fp, fmt0, ap);
	FUNLOCKFILE(fp);
	return (ret);
----------------
Which ensures that they are thread safe.

Why is the same case not followed for eg with vsnprintf or vsprintf
Vsnprintf calls directly __vfprintf which is not thread safe. Hence
How is there thready safey guranteed. Any help on this front
Would be helpful.

Thanks and regards
Mayank


More information about the freebsd-current mailing list