xref: /freebsd/share/examples/sunrpc/msg/printmsg.c (revision 97759ccc715c4b365432c16d763c50eecfcb1100)
1944fcc15SGarrett Wollman /*
2944fcc15SGarrett Wollman  * printmsg.c: print a message on the console
3944fcc15SGarrett Wollman  */
41a37aa56SDavid E. O'Brien #include <paths.h>
5944fcc15SGarrett Wollman #include <stdio.h>
6944fcc15SGarrett Wollman 
main(argc,argv)7944fcc15SGarrett Wollman main(argc, argv)
8944fcc15SGarrett Wollman 	int argc;
9944fcc15SGarrett Wollman 	char *argv[];
10944fcc15SGarrett Wollman {
11944fcc15SGarrett Wollman 	char *message;
12944fcc15SGarrett Wollman 
13944fcc15SGarrett Wollman 	if (argc < 2) {
14944fcc15SGarrett Wollman 		fprintf(stderr, "usage: %s <message>\n", argv[0]);
15944fcc15SGarrett Wollman 		exit(1);
16944fcc15SGarrett Wollman 	}
17944fcc15SGarrett Wollman 	message = argv[1];
18944fcc15SGarrett Wollman 
19944fcc15SGarrett Wollman 	if (!printmessage(message)) {
20944fcc15SGarrett Wollman 		fprintf(stderr, "%s: sorry, couldn't print your message\n",
21944fcc15SGarrett Wollman 			argv[0]);
22944fcc15SGarrett Wollman 		exit(1);
23944fcc15SGarrett Wollman 	}
24944fcc15SGarrett Wollman 	printf("Message delivered!\n");
25944fcc15SGarrett Wollman }
26944fcc15SGarrett Wollman 
27944fcc15SGarrett Wollman /*
28944fcc15SGarrett Wollman  * Print a message to the console.
29944fcc15SGarrett Wollman  * Return a boolean indicating whether the message was actually printed.
30944fcc15SGarrett Wollman  */
printmessage(msg)31944fcc15SGarrett Wollman printmessage(msg)
32944fcc15SGarrett Wollman 	char *msg;
33944fcc15SGarrett Wollman {
34944fcc15SGarrett Wollman 	FILE *f;
35944fcc15SGarrett Wollman 
361a37aa56SDavid E. O'Brien 	f = fopen(_PATH_CONSOLE, "w");
37944fcc15SGarrett Wollman 	if (f == NULL) {
38944fcc15SGarrett Wollman 		return (0);
39944fcc15SGarrett Wollman 	}
40944fcc15SGarrett Wollman 	fprintf(f, "%s\n", msg);
41944fcc15SGarrett Wollman 	fclose(f);
42944fcc15SGarrett Wollman 	return(1);
43944fcc15SGarrett Wollman }
44