Next: , Previous: fputc, Up: Stdio


4.21 fputs, fputs_unlocked—write a character string in a file or stream

Synopsis

     #include <stdio.h>
     int fputs(const char *restrict s, FILE *restrict fp);
     
     #define _GNU_SOURCE
     #include <stdio.h>
     int fputs_unlocked(const char *restrict s, FILE *restrict fp);
     
     #include <stdio.h>
     int _fputs_r(struct _reent *ptr, const char *restrict s, FILE *restrict fp);
     
     #include <stdio.h>
     int _fputs_unlocked_r(struct _reent *ptr, const char *restrict s, FILE *restrict fp);
     

Description
fputs writes the string at s (but without the trailing null) to the file or stream identified by fp.

fputs_unlocked is a non-thread-safe version of fputs. fputs_unlocked may only safely be used within a scope protected by flockfile() (or ftrylockfile()) and funlockfile(). This function may safely be used in a multi-threaded program if and only if they are called while the invoking thread owns the (FILE *) object, as is the case after a successful call to the flockfile() or ftrylockfile() functions. If threads are disabled, then fputs_unlocked is equivalent to fputs.

_fputs_r and _fputs_unlocked_r are simply reentrant versions of the above that take an additional reentrant struct pointer argument: ptr.


Returns
If successful, the result is 0; otherwise, the result is EOF.

Portability
ANSI C requires fputs, but does not specify that the result on success must be 0; any non-negative value is permitted.

fputs_unlocked is a GNU extension.

Supporting OS subroutines required: close, fstat, isatty, lseek, read, sbrk, write.