pkg://ch-5.1.0_1.tbz:6718412/
ch/
demos/
lib/
libc/
stropts/getmsg.c
downloads
/* Copyright (c) 2001-2004 by SoftIntegration, Inc. All Rights Reserved */
/* This program is designed for testing the getmsg(), getpmsg, putmsg(),
putpmsg(), as well as isastream() generated from stropts.h
Note: STDIN_FILENO and STDOUT_FILENO in HPUX is not STREAM, therefore,
functions in this program will fail in HPUX
*/
#include <stropts.h>
#include <unistd.h>
#include <stdio.h>
#define BUFFSIZE 8192
int main()
{
int errno, band;
char ctlbuf[BUFFSIZE], datbuf[BUFFSIZE];
struct strbuf ctl, dat;
long flag;
ctl.buf = ctlbuf;
ctl.maxlen = BUFFSIZE;
dat.buf = datbuf;
dat.maxlen = BUFFSIZE;
for ( ; ; )
{
flag = 0; /* return any message, put as a normal one */
/* get all messages from STDIN and then put them onto STDOUT as a normal one.
just input a return will stop this procedure
*/
if ( (errno = getmsg(STDIN_FILENO, &ctl, &dat, &flag)) < 0) {
perror("getmsg() fails");
exit(1);
}
fprintf(stderr, "getmsg is successful -> flag = %d, ctl.len = %d, dat.len = %d\n",
flag, ctl.len, dat.len);
if (dat.len == 1)
break;
else if (dat.len > 1)
if ( (errno = putmsg(STDOUT_FILENO, &ctl, &dat, flag)) < 0) {
perror("putmsg() fails");
exit(1);
}
}
}