version 1.15, 2015/10/10 11:29:46 |
version 1.17, 2020/10/06 11:33:47 |
|
|
/*$OpenXM: OpenXM/src/kan96xx/plugin/file2.c,v 1.14 2005/10/31 07:50:20 takayama Exp $ */ |
/*$OpenXM: OpenXM/src/kan96xx/plugin/file2.c,v 1.16 2016/03/31 03:22:55 takayama Exp $ */ |
#include <stdio.h> |
#include <stdio.h> |
#include <string.h> |
#include <string.h> |
#include <sys/time.h> |
#include <sys/time.h> |
|
|
#include <errno.h> |
#include <errno.h> |
#include <stdlib.h> |
#include <stdlib.h> |
#include "file2.h" |
#include "file2.h" |
|
#include "mysig.h" |
|
#include "sm1Socket.h" |
|
|
/* If you use file2 standalone to output string, |
/* If you use file2 standalone to output string, |
make the following dummy definition; |
make the following dummy definition; |
Line 94 void fp2setfp(FILE2 *fp2,FILE *fp,int popened) { |
|
Line 96 void fp2setfp(FILE2 *fp2,FILE *fp,int popened) { |
|
int fp2fflush(FILE2 *fp2) { |
int fp2fflush(FILE2 *fp2) { |
int r; |
int r; |
if (debug1) { |
if (debug1) { |
printf("fp2fflush is called with FILE2 *%x.\n", (int )fp2); |
printf("fp2fflush is called with FILE2 *%lx.\n", (long)fp2); |
fp2dumpBuffer(fp2); |
fp2dumpBuffer(fp2); |
printf("--------------------------\n"); |
printf("--------------------------\n"); |
} |
} |
if (checkfp2(fp2,"fp2fflush ") == -1) return(-1); |
if (checkfp2(fp2,"fp2fflush ") == -1) return(-1); |
if (fp2->fd == -1) return(0); |
if (fp2->fd == -1) return(0); |
if (fp2->writepos > 0) { |
if (fp2->writepos > 0) { |
signal(SIGPIPE,SIG_IGN); |
mysignal(SIGPIPE,SIG_IGN); |
r = write(fp2->fd,fp2->writeBuf,fp2->writepos); |
r = write(fp2->fd,fp2->writeBuf,fp2->writepos); |
signal(SIGPIPE,SIG_DFL); |
mysignal(SIGPIPE,SIG_DFL); |
fp2->writepos = 0; |
fp2->writepos = 0; |
if (r <= 0) { |
if (r <= 0) { |
fprintf(stderr,"fp2fflush(): write failed on %d.\n",fp2->fd); |
fprintf(stderr,"fp2fflush(): write failed on %d.\n",fp2->fd); |
Line 140 int fp2fputc(int c,FILE2 *fp2) { |
|
Line 142 int fp2fputc(int c,FILE2 *fp2) { |
|
FILE *fp; |
FILE *fp; |
if (debug1) { |
if (debug1) { |
printf("fp2fputc is called with %2x, fp2->writepos=%d, ",c,fp2->writepos); |
printf("fp2fputc is called with %2x, fp2->writepos=%d, ",c,fp2->writepos); |
printf("fp2 = %x.\n",(int) fp2); |
printf("fp2 = %lx.\n",(long) fp2); |
} |
} |
if (fp2->watch || WatchStream) { |
if (fp2->watch || WatchStream) { |
if (fp2->watch) fp = fp2->watchFile; |
if (fp2->watch) fp = fp2->watchFile; |