| version 1.11, 2004/12/16 08:42:14 |
version 1.16, 2016/03/31 03:22:55 |
|
|
| /*$OpenXM: OpenXM/src/kan96xx/plugin/file2.c,v 1.10 2004/02/25 23:14:35 takayama Exp $ */ |
/*$OpenXM: OpenXM/src/kan96xx/plugin/file2.c,v 1.15 2015/10/10 11:29:46 takayama Exp $ */ |
| #include <stdio.h> |
#include <stdio.h> |
| |
#include <string.h> |
| #include <sys/time.h> |
#include <sys/time.h> |
| #include <sys/types.h> |
#include <sys/types.h> |
| #include <unistd.h> |
#include <unistd.h> |
| |
#include <signal.h> |
| #include <errno.h> |
#include <errno.h> |
| |
#include <stdlib.h> |
| #include "file2.h" |
#include "file2.h" |
| |
#include "mysig.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 98 int fp2fflush(FILE2 *fp2) { |
|
| Line 102 int fp2fflush(FILE2 *fp2) { |
|
| 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) { |
| |
mysignal(SIGPIPE,SIG_IGN); |
| r = write(fp2->fd,fp2->writeBuf,fp2->writepos); |
r = write(fp2->fd,fp2->writeBuf,fp2->writepos); |
| |
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); |
| |
if (errno == EPIPE) { |
| |
fprintf(stderr,"Your peer is closed --- SIGPIPE. Closing this fp2.\n"); |
| |
fp2fclose(fp2); |
| |
return r; |
| |
} |
| } |
} |
| return(r); |
return(r); |
| }else{ |
}else{ |
| Line 276 int fp2clearReadBuf(FILE2 *fp2) { |
|
| Line 287 int fp2clearReadBuf(FILE2 *fp2) { |
|
| int fp2write(FILE2 *os, char *data, int size) { |
int fp2write(FILE2 *os, char *data, int size) { |
| int i,r; |
int i,r; |
| for (i=0; i<size; i++) { |
for (i=0; i<size; i++) { |
| r = fp2fputc(data[i],os); |
r = fp2fputc((unsigned char)(data[i]),os); |
| } |
} |
| return(r); |
return(r); |
| } |
} |
| Line 373 int fp2fputs(char *s,FILE2 *fp) { |
|
| Line 384 int fp2fputs(char *s,FILE2 *fp) { |
|
| int i,n; |
int i,n; |
| n = strlen(s); |
n = strlen(s); |
| for (i=0; i<n; i++) { |
for (i=0; i<n; i++) { |
| if (fp2fputc(s[i],fp) < 0) return(-1); |
if (fp2fputc((unsigned char)(s[i]),fp) < 0) return(-1); |
| } |
} |
| return(0); |
return(0); |
| } |
} |
| Line 395 int fp2fputs(char *s,FILE2 *fp) { |
|
| Line 406 int fp2fputs(char *s,FILE2 *fp) { |
|
| .... |
.... |
| } |
} |
| */ |
*/ |
| |
|