int main(int argc, char **argv) { DskPattern *pattern; DskError *error = NULL; dsk_cmdline_init ("grep-like tool", "Implement 'grep' using DskPattern", "PATTERN [FILES...]", DSK_CMDLINE_PERMIT_ARGUMENTS); dsk_cmdline_process_args (&argc, &argv); if (argc < 2) dsk_die ("missing pattern"); DskPatternEntry entry = { argv[1], "nonnull" }; pattern = dsk_pattern_compile (1, &entry, &error); if (pattern == NULL) dsk_die ("error compiling pattern: %s", error->message); unsigned buffer_size = isatty (STDOUT_FILENO) ? 0 : 8192; if (argc == 2) handle_fd (pattern, NULL, buffer_size, 0); else { int i; for (i = 2; i < argc; i++) { int fd = open (argv[i], O_RDONLY); if (fd < 0) dsk_die ("error opening %s: %s", argv[i], strerror (errno)); handle_fd (pattern, argc == 3 ? NULL : argv[i], buffer_size, fd); close (fd); } } return 0; }
int main(int argc, char **argv) { struct timeval start, end; int port=0; char *addr=NULL; int msg_size = 0; int fd=-1, i, newfd; int sec, usec; int number_iterations=0; socklen_t len; struct sockaddr_in sin; struct sockaddr_in from; while((i= getopt(argc,argv,"h:p:v?")) != EOF) { switch (i) { case 'v': verbose = 1; break; case 'h': addr = optarg; break; case 'p': port = strtol(optarg, NULL, 0); break; case '?': default: printf ("Use %s -h host -p port -i iterations -s msg_size \n", argv[0]); return (-1); }; } if (port == 0) { printf ("Use %s -p port [-h host] \n", argv[0]); return (-1); } if(addr) { if (inet_pton(AF_INET, addr, (void *)&sin.sin_addr.s_addr) != 1) { printf("Address not parseable\n"); return(-1); } } else { sin.sin_addr.s_addr = INADDR_ANY; } sin.sin_port = ntohs(port); sin.sin_family = AF_INET; sin.sin_len = sizeof(struct sockaddr_in); fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP); if( fd == -1) { printf("Can't open socket %d\n", errno); return(-1); } errno = 0; if(init_fd(&sin, fd)) { printf("Can't init fd errno:%d\n", errno); return (-1); } len = sizeof(from); handle_fd(fd); return (0); }