home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V7 / usr / src / cmd / mesg.c < prev    next >
Encoding:
C/C++ Source or Header  |  1979-01-10  |  779 b   |  56 lines

  1. /*
  2.  * mesg -- set current tty to accept or
  3.  *    forbid write permission.
  4.  *
  5.  *    mesg [y] [n]
  6.  *        y allow messages
  7.  *        n forbid messages
  8.  */
  9.  
  10. #include <stdio.h>
  11. #include <sys/types.h>
  12. #include <sys/stat.h>
  13.  
  14. struct stat sbuf;
  15.  
  16. char *tty;
  17. char *ttyname();
  18.  
  19. main(argc, argv)
  20. char *argv[];
  21. {
  22.     int r=0;
  23.     tty = ttyname(2);
  24.     if(stat(tty, &sbuf) < 0) error("cannot stat");
  25.     if(argc < 2) {
  26.         if(sbuf.st_mode & 02)
  27.             fprintf(stderr,"is y\n");
  28.         else {    r=1;
  29.             fprintf(stderr,"is n\n");
  30.         }
  31.     } else    switch(*argv[1]) {
  32.         case 'y':
  33.             newmode(0622); break;
  34.  
  35.         case 'n':
  36.             newmode(0600); r=1; break;
  37.  
  38.         default:
  39.             error("usage: mesg [y] [n]");
  40.         }
  41.     exit(r);
  42. }
  43.  
  44. error(s)
  45. char *s;
  46. {
  47.     fprintf(stderr,"mesg: %s\n",s);
  48.     exit(-1);
  49. }
  50.  
  51. newmode(m)
  52. {
  53.     if(chmod(tty,m)<0)
  54.         error("cannot change mode");
  55. }
  56.