Mayank Kumar wrote: >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 > vsnprintf and vsprintf use a on stack FILE structure, no other threads can see the structure, it won't be shared with other threads, so lock is not needed. Cheers, David XuReceived on Mon Apr 25 2005 - 11:33:07 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:32 UTC