Open System Services Programmer's Guide

short ret_fd;
_cc_status read_status ;
short error = 0;
/* Create the EDIT file */
file_create(argv[1]);
/* Open $RECEIVE for interprocess communication */
dol_RECEIVE_opener();
/* Exit only when close received from OSSTTY */
for (;;)
{
/* Read from $RECEIVE in waited manner */
read_status = READUPDATEX(rcv_fd,
(char *)U_data,
MAX_USRMSG,
&rcv_cnt);
/* A CCG on $RECEIVE means that a system message has
been received */
if( _status_gt(read_status)) {
error = tty_info_fnum (rcv_fd);
if(error == 6)
system_message ();
}
else
user_message( );
}
}
/* Log the message from OSSTTY to the EDIT file */
void user_message(void) {
short error = 0 ;
error = WRITEEDIT(edit_fd, ,
(char *)U_data,
rcv_cnt);
if (error) {
printf("Unable to write to EDIT file\n");
exit(0);
}
REPLY();
}
/* Service the Open and Close system message */
void system_message(void) {
switch(U_data[0]) {
case -103: /* Open message */
{
REPLY();
break;
}
case -104: /* Close Message */
{
CLOSEALLEDIT();
REPLY();
exit(0);
break;
}
default:
REPLY();
break;
}
}
/* Create the log file */
void file_create(char* file_name ) {
short error = 0;
220 Managing I/O