|
|
1.1 ! root 1: #include <stdio.h> ! 2: #include <sys/types.h> ! 3: #include <sys/stat.h> ! 4: #include <sys/file.h> ! 5: ! 6: main(argc, argv) ! 7: char *argv[]; ! 8: { ! 9: struct stat sb; ! 10: register char *cp; ! 11: int i, fd, count = 0; ! 12: char buf[10]; ! 13: ! 14: for (cp = "", i = 1; i < argc; cp = " ", i++) { ! 15: if (lstat(argv[i], &sb) < 0) ! 16: continue; ! 17: if ((sb.st_mode & S_IFMT) != S_IFREG) ! 18: continue; ! 19: fd = open(argv[i], O_RDONLY); ! 20: if (fd < 0) { ! 21: perror(argv[i]); ! 22: continue; ! 23: } ! 24: if (read(fd, buf, 3) != 3) { ! 25: close(fd); ! 26: continue; ! 27: } ! 28: if (strncmp(buf, ".so", 3)) ! 29: count++, printf("%s%s", cp, argv[i]); ! 30: close(fd); ! 31: } ! 32: if (count > 0) ! 33: putchar('\n'); ! 34: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.