-/*** you can't do this with lots of users & MAXUPROC
- i = fork();
- if(i == -1) {
- fprintf(stderr, "Try again\n");
+ if ((f = open(t, O_WRONLY|O_NDELAY)) < 0) {
+ if (errno != EWOULDBLOCK)
+ perror(t);
+ return;
+ }
+ if ((flags = fcntl(f, F_GETFL, 0)) == -1) {
+ perror(t);
+ return;
+ }
+ if (fcntl(f, F_SETFL, flags | FNDELAY) == -1)
+ goto oldway;
+ i = write(f, mesg, msize);
+ e = errno;
+ (void) fcntl(f, F_SETFL, flags);
+ if (i == msize) {
+ (void) close(f);
+ return;
+ }
+ if (e != EWOULDBLOCK) {
+ errno = e;
+ perror(t);
+ (void) close(f);