1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
/************************************************************************/
/* */
/* Simple output stream to a particular file descriptor. */
/* */
/************************************************************************/
# include "appUtilConfig.h"
# include <unistd.h>
# include <stdlib.h>
# include <sioFd.h>
# include <appDebugon.h>
static int sioFdClose( void * voidpfd )
{
if ( voidpfd )
{ free( voidpfd ); }
return 0;
}
static int sioOutFdWriteBytes( void * voidpfd,
const unsigned char * buffer,
int count )
{
int * pfd= (int *)voidpfd;
return write( *pfd, buffer, count );
}
SimpleOutputStream * sioOutFdOpen( int fd )
{
int * pfd;
SimpleOutputStream * sos;
pfd= malloc( sizeof( int ) );
if ( ! pfd )
{ XDEB(pfd); return (SimpleOutputStream *)0; }
*pfd= fd;
sos= sioOutOpen( (void *)pfd, sioOutFdWriteBytes,
(SIOoutSEEK)0, sioFdClose );
if ( ! sos )
{ XDEB(sos); free( pfd ); return (SimpleOutputStream *)0; }
return sos;
}
|