bammi@dsrgsun.ces.CWRU.edu (Jwahar R. Bammi) (10/22/88)
Found two bugs in the Minix Atari ST distribution from PH:
- popen.c uses _exit(). _exit() is not in the library.
Quick Fix: replace the one occurance of _exit() with exit()
(i know they are not the same, but it is close enough for
goverment work, especially on the atari version where they
have eliminated _cleanup)
- fdopen.c is missing. Here is one:
/*
* They missed this in the standard ST distribution
* adapted from fopen.c
* ++jrb bammi@dsrgsun.ces.cwru.edu
*
*/
#include <stdio.h>
FILE *fdopen(fd,mode)
int fd;
char *mode;
{
register int i;
FILE *fp;
extern char *malloc();
int flags = 0;
/* find a table slot */
for (i = 0; _io_table[i] != 0 ; i++)
if ( i >= NFILES )
return(NULL); /* if none avail */
/* set up flags */
switch(*mode){
case 'w':
flags |= WRITEMODE;
break;
case 'a':
flags |= WRITEMODE;
break;
case 'r':
flags |= READMODE;
break;
default:
return(NULL);
}
if (( fp = (FILE *) malloc (sizeof( FILE))) == NULL )
return(NULL);
fp->_count = 0;
fp->_fd = fd;
fp->_flags = flags;
fp->_buf = malloc( BUFSIZ );
if ( fp->_buf == NULL )
fp->_flags |= UNBUFF;
else
fp->_flags |= IOMYBUF;
fp->_ptr = fp->_buf;
_io_table[i] = fp;
return(fp);
}
/* - eof - */
--
usenet: {decvax,sun}!cwjcc!bammi jwahar r. bammi
csnet: bammi@dsrgsun.ces.CWRU.edu
arpa: bammi@dsrgsun.ces.CWRU.edu
compuServe: 71515,155