int main() { int error; lpMcDrag mcdrag; html_setfile(stdout); mcdrag = mcdrag_create(); if (mcdrag) { error = doinput(mcdrag); if (!error) mcdrag_calculate(mcdrag); dooutput(mcdrag, error); free(mcdrag); } return 0; }
int main() { lpTrajectory trajectory; int error; html_setfile(stdout); trajectory = trajectory_create(); if (trajectory) { error = doinput(trajectory); if (!error) trajectory_calculate(trajectory); dooutput(trajectory, error); trajectory_destroy(trajectory); } return 0; }
int main() { lpPointBlankRange pointblankrange; int error; html_setfile(stdout); pointblankrange = pointblankrange_create(); if (pointblankrange) { error = doinput(pointblankrange); if (!error) pointblankrange_calculate(pointblankrange); dooutput(pointblankrange, error); pointblankrange_destroy(pointblankrange); } return 0; }
void main(int argc, char *argv[]) { int i, f, fo; char *file; kilo = 5000; obsize = ibsize = 8*1024; dsize = 0; fo = 1; off = 0; ARGBEGIN { default: usage(); case 'b': obsize = ibsize = atoi(EARGF(usage())); break; case 'd': dsize = atoi(EARGF(usage())); break; case 'f': file = EARGF(usage()); fo = create(file, 1, 0666); if(fo < 0) sysfatal("can't create %s: %r", file); break; case 'i': ibsize = atoi(EARGF(usage())); break; case 'k': kilo = atoi(EARGF(usage())); break; case 'o': obsize = atoi(EARGF(usage())); break; case 's': ssize = atoi(EARGF(usage())); if(ssize <= 0) ssize = 800; ssize <<= 10; break; case 'S': off = atoll(EARGF(usage())); if(off < 0) sysfatal("seek offset %lld must be non-negative", off); break; case 't': tsize = atoll(EARGF(usage())); tsize *= 10584000; /* minutes */ break; } ARGEND kilo <<= 10; buf = malloc(kilo); if(buf == nil) sysfatal("no memory: %r"); nin = 0; nout = 0; done = 0; max = 0; switch(rfork(RFPROC|RFNOWAIT|RFNAMEG|RFMEM)) { default: dooutput(fo); break; case 0: for(i=0; i<argc; i++) { f = open(argv[i], OREAD); if(f < 0) { fprint(2, "%s: can't open %s: %r\n", argv0, argv[i]); break; } doinput(f); close(f); } if(argc == 0) doinput(0); break; case -1: fprint(2, "%s: fork failed: %r\n", argv0); break; } done = 1; exits(0); }
int main(int argc, char **argv) { struct sigaction sa; extern int optind; char *p; int ch; progname = argv[0]; if ((p = strrchr(progname, '/')) != NULL) progname = p+1; setlocale(LC_ALL, ""); setlocale(LC_NUMERIC, "C"); /* see comment above */ bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE); if (argc == 2) { if (!strcmp(argv[1], "-V") || !strcmp(argv[1], "--version")) { printf(_("%s (%s)\n"), progname, PACKAGE_STRING); return 0; } } while ((ch = getopt(argc, argv, "ac:fqt")) != -1) switch((char)ch) { case 'a': aflg++; break; case 'c': cflg = optarg; break; case 'f': fflg++; break; case 'q': qflg++; break; case 't': tflg++; break; case '?': default: fprintf(stderr, _("usage: script [-a] [-f] [-q] [-t] [file]\n")); exit(1); } argc -= optind; argv += optind; if (argc > 0) fname = argv[0]; else { fname = "typescript"; die_if_link(fname); } if ((fscript = fopen(fname, aflg ? "a" : "w")) == NULL) { perror(fname); fail(); } shell = getenv("SHELL"); if (shell == NULL) shell = _PATH_BSHELL; getmaster(); if (!qflg) printf(_("Script started, file is %s\n"), fname); fixtty(); sigemptyset(&sa.sa_mask); sa.sa_flags = 0; sa.sa_handler = finish; sigaction(SIGCHLD, &sa, NULL); child = fork(); if (child < 0) { perror("fork"); fail(); } if (child == 0) { subchild = child = fork(); if (child < 0) { perror("fork"); fail(); } if (child) dooutput(); else doshell(); } else { sa.sa_handler = resize; sigaction(SIGWINCH, &sa, NULL); } doinput(); return 0; }
int main(int argc, char **argv) { sigset_t block_mask, unblock_mask; struct sigaction sa; int ch; FILE *timingfd = stderr; enum { FORCE_OPTION = CHAR_MAX + 1 }; static const struct option longopts[] = { { "append", no_argument, NULL, 'a' }, { "command", required_argument, NULL, 'c' }, { "return", no_argument, NULL, 'e' }, { "flush", no_argument, NULL, 'f' }, { "force", no_argument, NULL, FORCE_OPTION, }, { "quiet", no_argument, NULL, 'q' }, { "timing", optional_argument, NULL, 't' }, { "version", no_argument, NULL, 'V' }, { "help", no_argument, NULL, 'h' }, { NULL, 0, NULL, 0 } }; setlocale(LC_ALL, ""); setlocale(LC_NUMERIC, "C"); /* see comment above */ bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE); atexit(close_stdout); while ((ch = getopt_long(argc, argv, "ac:efqt::Vh", longopts, NULL)) != -1) switch(ch) { case 'a': aflg = 1; break; case 'c': cflg = optarg; break; case 'e': eflg = 1; break; case 'f': fflg = 1; break; case FORCE_OPTION: forceflg = 1; break; case 'q': qflg = 1; break; case 't': if (optarg) if ((timingfd = fopen(optarg, "w")) == NULL) err(EXIT_FAILURE, _("cannot open timing file %s"), optarg); tflg = 1; break; case 'V': printf(_("%s from %s\n"), program_invocation_short_name, PACKAGE_STRING); exit(EXIT_SUCCESS); break; case 'h': usage(stdout); break; case '?': default: usage(stderr); } argc -= optind; argv += optind; if (argc > 0) fname = argv[0]; else { fname = DEFAULT_OUTPUT; die_if_link(fname); } if ((fscript = fopen(fname, aflg ? "a" : "w")) == NULL) { warn(_("open failed: %s"), fname); fail(); } shell = getenv("SHELL"); if (shell == NULL) shell = _PATH_BSHELL; getmaster(); if (!qflg) printf(_("Script started, file is %s\n"), fname); fixtty(); #ifdef HAVE_LIBUTEMPTER utempter_add_record(master, NULL); #endif /* setup SIGCHLD handler */ sigemptyset(&sa.sa_mask); sa.sa_flags = 0; sa.sa_handler = finish; sigaction(SIGCHLD, &sa, NULL); /* init mask for SIGCHLD */ sigprocmask(SIG_SETMASK, NULL, &block_mask); sigaddset(&block_mask, SIGCHLD); sigprocmask(SIG_SETMASK, &block_mask, &unblock_mask); child = fork(); sigprocmask(SIG_SETMASK, &unblock_mask, NULL); if (child < 0) { warn(_("fork failed")); fail(); } if (child == 0) { sigprocmask(SIG_SETMASK, &block_mask, NULL); subchild = child = fork(); sigprocmask(SIG_SETMASK, &unblock_mask, NULL); if (child < 0) { warn(_("fork failed")); fail(); } if (child) dooutput(timingfd); else doshell(); } else { sa.sa_handler = resize; sigaction(SIGWINCH, &sa, NULL); } doinput(); if (close_stream(timingfd) != 0) errx(EXIT_FAILURE, _("write error")); return EXIT_SUCCESS; }
int Active_StartSession() { log = fopen("log_file", "w"); /* FIXME hardcoded */ if (pipe(xfer_fifo)) { ERROR("Pipe creation failure"); return 1; } /* FIXME end hardcoded */ mpty = dopty(); if (!mpty) { ERROR("Pty creation failed"); return 1; } fixtty(); if (USE_FORKS) { signal(SIGCHLD, finish); /* we create 2 forks, one acts as a new shell and the other * continues the process of this code. * * child 0 continues to run this code * and child > 0 runs the new shell */ child = fork(); if (child < 0) { ERROR("Creation of fork failed"); return 1; } /* printf("CHILD %d\n", getpid()); */ if (child == 0) { child = fork(); /* printf("CHILD2 %d\n", getpid()); */ if (child == 0) { subchild = child = fork(); /* printf("CHILD3 %d\n", getpid()); */ TRACE(Neuro_s("Process %d -- PTY size : col %d row %d", getpid(), mpty->wsize.ws_col, mpty->wsize.ws_row)); if (child == 0) doshell(); else dooutput(); } doinput(); } else signal(SIGWINCH, resize); } else { signal(SIGWINCH, resize); child = fork(); if (child < 0) { ERROR("Creation of fork failed"); return 1; } if (child > 0) doshell(); } fcntl(xfer_fifo[0], F_SETFL, O_NONBLOCK); close(xfer_fifo[1]); /* activate the polling */ activated = 1; return 0; }
int main(int argc, char *argv[]) { uid_t ruidt; gid_t gidt; (void) setlocale(LC_ALL, ""); #if !defined(TEXT_DOMAIN) #define TEXT_DOMAIN "SYS_TEST" #endif (void) textdomain(TEXT_DOMAIN); shell = getenv("SHELL"); if (shell == NULL) shell = "/bin/sh"; argc--, argv++; while (argc > 0 && argv[0][0] == '-') { switch (argv[0][1]) { case 'a': aflg++; break; default: fprintf(stderr, gettext("usage: script [ -a ] [ typescript ]\n")); exit(1); } argc--, argv++; } if (argc > 0) fname = argv[0]; ruidt = getuid(); gidt = getgid(); if ((fscript = fopen(fname, aflg ? "a" : "w")) == NULL) { perror(fname); fail(); } setbuf(fscript, NULL); chown(fname, ruidt, gidt); getmaster(); printf(gettext("Script started, file is %s\n"), fname); fixtty(); (void) signal(SIGCHLD, finish); child = fork(); if (child < 0) { perror("fork"); fail(); } if (child == 0) { subchild = child = fork(); if (child < 0) { perror("fork"); fail(); } if (child) dooutput(); else doshell(); } doinput(); /* NOTREACHED */ return (0); }
int ttyrec_main (int game, char *username, char *ttyrec_path, char* ttyrec_filename) { char dirname[100]; /* Note our PID to let children kill the main dgl process for idling */ dgl_parent = getpid(); child = subchild = input_child = 0; if (!ttyrec_path) { child = fork(); if (child < 0) { perror ("fork"); fail (); } if (child == 0) { execvp (myconfig[game]->game_path, myconfig[game]->bin_args); } else { int status; (void) wait(&status); } return 0; } if (ttyrec_path[strlen(ttyrec_path)-1] == '/') snprintf (dirname, 100, "%s%s", ttyrec_path, ttyrec_filename); else snprintf (dirname, 100, "%s/%s", ttyrec_path, ttyrec_filename); atexit(&remove_ipfile); if ((fscript = fopen (dirname, "w")) == NULL) { perror (dirname); fail (); } setbuf (fscript, NULL); fixtty (); (void) signal (SIGCHLD, finish); child = fork (); if (child < 0) { perror ("fork"); fail (); } if (child == 0) { subchild = child = fork (); if (child < 0) { perror ("fork"); fail (); } if (child) { close (slave); ipfile = gen_inprogress_lock (game, child, ttyrec_filename); ttyrec_id(game, username, ttyrec_filename); dooutput (myconfig[game]->max_idle_time); } else doshell (game, username); } (void) fclose (fscript); wait_for_menu = 1; input_child = fork(); if (input_child < 0) { perror ("fork2"); fail (); } if (!input_child) doinput (); else { while (wait_for_menu) sleep(1); } remove_ipfile(); child = 0; return 0; }