/* test readline() */
#include "unpthread.h"
static char *infile; /* from argv[1]; read-only by threads */
void *
myfunc(void *ptr)
{
int i, fdin;
char buf[MAXLINE];
FILE *fpout;
snprintf(buf, sizeof(buf), "temp.%d", pthread_self());
fpout = Fopen(buf, "w+");
/* printf("created %s\n", buf); */
for (i = 0; i < 5; i++) {
fdin = Open(infile, O_RDONLY, 0);
while (Readline(fdin, buf, sizeof(buf)) > 0) {
fputs(buf, fpout);
}
Close(fdin);
}
Fclose(fpout);
printf("thread %d done\n", pthread_self());
return(NULL);
}
int
main(int argc, char **argv)
{
int i, nthreads;
pthread_t tid;
if (argc != 3)
err_quit("usage: test04 <input-file> <#threads>");
infile = argv[1];
nthreads = atoi(argv[2]);
for (i = 0; i < nthreads; i++) {
Pthread_create(&tid, NULL, myfunc, NULL);
}
pause();
exit(0);
}
syntax highlighted by Code2HTML, v. 0.9.1