Minix1.1/usr/src/commands/chown.c

Compare this file to the similar file:
Show the results in this format:

/*
 * chown username file ...
 * 
 * By Patrick van Kleef
 *
 */

#include "pwd.h"
#include "../h/type.h"
#include "stat.h"
#include "stdio.h"

main (argc, argv)
int   argc;
char *argv[];
{
	int     i,
	status = 0;
	struct passwd  *pwd, *getpwnam ();
	struct stat stbuf;

	if (argc < 3) {
		fprintf (stderr,"Usage: chown uid file ...\n");
		exit (1);
	}

	if ((pwd = getpwnam (argv[1])) == 0) {
		fprintf (stderr,"Unknown user id: %s\n", argv[1]);
		exit (4);
	}

	for (i = 2; i < argc; i++) {
		if (stat (argv[i], &stbuf) < 0) {
			perror (argv[i]);
			status++;
		}
		else
			if (chown (argv[i], pwd -> pw_uid, stbuf.st_gid) < 0) {
				fprintf (stderr,"%s: not changed\n", argv[i]);
				status++;
			}
	}
	exit (status);
}