| /* |
| * CDDL HEADER START |
| * |
| * The contents of this file are subject to the terms of the |
| * Common Development and Distribution License, Version 1.0 only |
| * (the "License"). You may not use this file except in compliance |
| * with the License. |
| * |
| * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| * or http://www.opensolaris.org/os/licensing. |
| * See the License for the specific language governing permissions |
| * and limitations under the License. |
| * |
| * When distributing Covered Code, include this CDDL HEADER in each |
| * file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| * If applicable, add the following below this CDDL HEADER, with the |
| * fields enclosed by brackets "[]" replaced with your own identifying |
| * information: Portions Copyright [yyyy] [name of copyright owner] |
| * |
| * CDDL HEADER END |
| */ |
| |
| /* |
| * Copyright 2005 Sun Microsystems, Inc. All rights reserved. |
| * Use is subject to license terms. |
| */ |
| |
| /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ |
| /* All Rights Reserved */ |
| |
| /* |
| * University Copyright- Copyright (c) 1982, 1986, 1988 |
| * The Regents of the University of California |
| * All Rights Reserved |
| * |
| * University Acknowledgment- Portions of this document are derived from |
| * software developed by the University of California, Berkeley, and its |
| * contributors. |
| */ |
| |
| #pragma ident "%Z%%M% %I% %E% SMI" |
| |
| /* |
| * biff |
| */ |
| |
| #include <stdlib.h> |
| #include <unistd.h> |
| #include <sys/types.h> |
| #include <sys/stat.h> |
| #include <stdio.h> |
| #include <locale.h> |
| |
| int |
| main(int argc, char **argv) |
| { |
| char *cp = ttyname(2); |
| struct stat stb; |
| |
| (void) setlocale(LC_ALL, ""); |
| |
| #if !defined(TEXT_DOMAIN) |
| #define TEXT_DOMAIN "SYS_TEST" |
| #endif |
| (void) textdomain(TEXT_DOMAIN); |
| |
| argc--, argv++; |
| if (cp == 0) { |
| (void) fprintf(stderr, |
| gettext("biff failed: cannot locate your tty: " |
| "ttyname() for file descriptor 2 returned" |
| " NULL\n")); |
| exit(1); |
| } |
| if (stat(cp, &stb) < 0) |
| perror(cp), exit(1); |
| if (argc == 0) { |
| (void) printf("is %s\n", |
| stb.st_mode&0100 ? gettext("y") : gettext("n")); |
| exit((stb.st_mode&0100) ? 0 : 1); |
| } |
| switch (argv[0][0]) { |
| |
| case 'y': |
| if (chmod(cp, stb.st_mode|0100) < 0) |
| perror(cp); |
| break; |
| |
| case 'n': |
| if (chmod(cp, stb.st_mode&~0100) < 0) |
| perror(cp); |
| break; |
| |
| default: |
| (void) fprintf(stderr, gettext("usage: biff [y] [n]\n")); |
| } |
| return ((stb.st_mode&0100) ? 0 : 1); |
| } |