V7/usr/src/cmd/mesg.c
/*
* mesg -- set current tty to accept or
* forbid write permission.
*
* mesg [y] [n]
* y allow messages
* n forbid messages
*/
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
struct stat sbuf;
char *tty;
char *ttyname();
main(argc, argv)
char *argv[];
{
int r=0;
tty = ttyname(2);
if(stat(tty, &sbuf) < 0) error("cannot stat");
if(argc < 2) {
if(sbuf.st_mode & 02)
fprintf(stderr,"is y\n");
else { r=1;
fprintf(stderr,"is n\n");
}
} else switch(*argv[1]) {
case 'y':
newmode(0622); break;
case 'n':
newmode(0600); r=1; break;
default:
error("usage: mesg [y] [n]");
}
exit(r);
}
error(s)
char *s;
{
fprintf(stderr,"mesg: %s\n",s);
exit(-1);
}
newmode(m)
{
if(chmod(tty,m)<0)
error("cannot change mode");
}