Home | History | Annotate | Line # | Download | only in tools
noso.c revision 1.1
      1  1.1  mrg #include <stdio.h>
      2  1.1  mrg #include <sys/types.h>
      3  1.1  mrg #include <sys/stat.h>
      4  1.1  mrg #include <sys/file.h>
      5  1.1  mrg 
      6  1.1  mrg main(argc, argv)
      7  1.1  mrg 	char *argv[];
      8  1.1  mrg {
      9  1.1  mrg 	struct stat sb;
     10  1.1  mrg 	register char *cp;
     11  1.1  mrg 	int i, fd, count = 0;
     12  1.1  mrg 	char buf[10];
     13  1.1  mrg 
     14  1.1  mrg 	for (cp = "", i = 1; i < argc; cp = " ", i++) {
     15  1.1  mrg 		if (lstat(argv[i], &sb) < 0)
     16  1.1  mrg 			continue;
     17  1.1  mrg 		if ((sb.st_mode & S_IFMT) != S_IFREG)
     18  1.1  mrg 			continue;
     19  1.1  mrg 		fd = open(argv[i], O_RDONLY);
     20  1.1  mrg 		if (fd < 0) {
     21  1.1  mrg 			perror(argv[i]);
     22  1.1  mrg 			continue;
     23  1.1  mrg 		}
     24  1.1  mrg 		if (read(fd, buf, 3) != 3) {
     25  1.1  mrg 			close(fd);
     26  1.1  mrg 			continue;
     27  1.1  mrg 		}
     28  1.1  mrg 		if (strncmp(buf, ".so", 3))
     29  1.1  mrg 			count++, printf("%s%s", cp, argv[i]);
     30  1.1  mrg 		close(fd);
     31  1.1  mrg 	}
     32  1.1  mrg 	if (count > 0)
     33  1.1  mrg 		putchar('\n');
     34  1.1  mrg }
     35