This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/WATCOM/samples/clibexam/getosfha.c

44 lines
1.1 KiB
C
Raw Normal View History

#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <fcntl.h>
void main()
{
long os_handle;
int fh1, fh2, rc;
fh1 = open( "file",
O_WRONLY | O_CREAT | O_TRUNC | O_BINARY,
S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP );
if( fh1 == -1 ) {
printf( "Could not open output file\n" );
exit( EXIT_FAILURE );
}
printf( "First POSIX handle %d\n", fh1 );
#if defined(USE_DUP2)
fh2 = 6;
if( dup2( fh1, fh2 ) == -1 ) fh2 = -1;
#else
os_handle = _get_osfhandle( fh1 );
printf( "OS Handle %ld\n", os_handle );
fh2 = _open_osfhandle( os_handle, O_WRONLY |
O_BINARY );
#endif
if( fh2 == -1 ) {
printf( "Could not open with second handle\n" );
exit( EXIT_FAILURE );
}
printf( "Second POSIX handle %d\n", fh2 );
rc = write( fh2, "trash\x0d\x0a", 7 );
printf( "Write file using second handle %d\n", rc );
rc = close( fh2 );
printf( "Closing second handle %d\n", rc );
rc = close( fh1 );
printf( "Closing first handle %d\n", rc );
}