os/ossrv/genericopenlibs/cstdlib/LSTDIO/PUTC.C
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
     1 /* PUTC.C
     2  * 
     3  * Portions Copyright (c) 1990-1999 Nokia Corporation and/or its subsidiary(-ies).
     4  * All rights reserved.
     5  */
     6 
     7 /*
     8  * Copyright (c) 1990 The Regents of the University of California.
     9  * All rights reserved.
    10  *
    11  * Redistribution and use in source and binary forms are permitted
    12  * provided that the above copyright notice and this paragraph are
    13  * duplicated in all such forms and that any documentation,
    14  * advertising materials, and other materials related to such
    15  * distribution and use acknowledge that the software was developed
    16  * by the University of California, Berkeley.  The name of the
    17  * University may not be used to endorse or promote products derived
    18  * from this software without specific prior written permission.
    19  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
    20  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
    21  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
    22  */
    23 
    24 /*
    25 FUNCTION
    26 <<putc>>---write a character (macro)
    27 
    28 INDEX
    29 	putc
    30 
    31 ANSI_SYNOPSIS
    32 	#include <stdio.h>
    33 	int putc(int <[ch]>, FILE *<[fp]>);
    34 
    35 TRAD_SYNOPSIS
    36 	#include <stdio.h>
    37 	int putc(<[ch]>, <[fp]>)
    38 	int <[ch]>;
    39 	FILE *<[fp]>;
    40 
    41 DESCRIPTION
    42 <<putc>> is a macro, defined in <<stdio.h>>.  <<putc>>
    43 writes the argument <[ch]> to the file or stream identified by
    44 <[fp]>, after converting it from an <<int>> to an <<unsigned char>>.
    45 
    46 If the file was opened with append mode (or if the stream cannot
    47 support positioning), then the new character goes at the end of the
    48 file or stream.  Otherwise, the new character is written at the
    49 current value of the position indicator, and the position indicator
    50 advances by one.
    51 
    52 For a subroutine version of this macro, see <<fputc>>.
    53 
    54 RETURNS
    55 If successful, <<putc>> returns its argument <[ch]>.  If an error
    56 intervenes, the result is <<EOF>>.  You can use `<<ferror(<[fp]>)>>' to
    57 query for errors.
    58 
    59 PORTABILITY
    60 ANSI C requires <<putc>>; it suggests, but does not require, that
    61 <<putc>> be implemented as a macro.  The standard explicitly permits
    62 macro implementations of <<putc>> to use the <[fp]> argument more than once;
    63 therefore, in a portable program, you should not use an expression
    64 with side effects as this argument.
    65 
    66 Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>,
    67 <<lseek>>, <<read>>, <<sbrk>>, <<write>>.
    68 */
    69 
    70 #include <stdio_r.h>
    71 #include "LOCAL.H"
    72 
    73 /*
    74  * A subroutine version of the macro putc.
    75  */
    76 
    77 #undef putc
    78 
    79 EXPORT_C int
    80 putc (int c,register FILE *fp)
    81 {
    82   /* CHECK_INIT is (eventually) called by __swbuf.  */
    83 
    84   return __sputc (c, fp);
    85 }