static void trace_open(const char *path, int fd) { debug("trace_open %s %d", path, fd); char *fullpath = get_fullpath(path); if (fullpath == NULL) { return; } trace_file(fullpath, fd); }
static void trace_open(const char *path, int fd) { debug("trace_open %s %d", path, fd); char *fullpath = realpath(path, NULL); if (fullpath == NULL) { printerr("Unable to get real path for '%s': %s\n", path, strerror(errno)); return; } trace_file(fullpath, fd); free(fullpath); }
static void trace_openat(int fd) { debug("trace_openat %d", fd); char linkpath[64]; snprintf(linkpath, 64, "/proc/%d/fd/%d", getpid(), fd); char fullpath[BUFSIZ]; int len = readlink(linkpath, fullpath, BUFSIZ); if (len <= 0) { printerr("Unable to get real path for fd %d: %s\n", fd, strerror(errno)); return; } if (len == BUFSIZ) { printerr("Path too long for fd %d: %s\n", fd, strerror(errno)); return; } /* readlink doesn't add a null byte */ fullpath[len] = '\0'; trace_file(fullpath, fd); }
/******************************************************************** * * * Gestion du menu * * * ********************************************************************/ boolean MenuSelect(int object, int scan, int state, int button) { int index, entree, key; if (object < 0) { /* attend qu'on relache la souris */ NoClick(); if (button < 0) { /* regarde la touche */ key = scantoascii(scan); if (key == 0) key = scan & 0xFF00; /* scan code */ else key = UpperChar(key); for (index = 0; index < NbMenus; index++) for (entree = 0; entree < MenuShortCuts[index].nb_entrees; entree++) if (MenuShortCuts[index].menu[entree].key == key && MenuShortCuts[index].menu[entree].state == state) { if (ob_isstate(Menu, MenuShortCuts[index].menuid, DISABLED) == 0 && ob_isstate(Menu, MenuShortCuts[index].menu[entree].itemid, DISABLED) == 0) { object = MenuShortCuts[index].menu[entree].itemid; index = NbMenus; } break; } } } if (object < 0) return FALSE; /* kein entsprechender Eintrag gefunden */ /* Men�punkte 'Fenster wechseln' und 'Fenster schliežen' werden inklusive der dazugeh”rigen Hotkeys automatisch verwaltet */ switch (object) { /* menu Zorg */ case INFORMATIONS: presentation(); break; /* menu Etat */ case INFORMATION: informations(Drive); break; case REPERTOIRE_LOUPE: if (ManageVFAT) open_directory_vfat(); else open_directory_short(); break; case TEST_STRUCTURE: if (ManageVFAT) structure_test_vfat(Drive); else structure_test_short(Drive); break; case STATISTIQUES: statistiques(Drive); break; case OCCUPATION: occupation(Drive); break; case TRACE_UN_FICHIER: trace_file(); break; case QUITTER: if (Reset) { if (my_alert(1, 2, X_ICN_QUESTION, Messages(MENU_1), Messages(BOOT_32)) == 0) shutdown(TRUE); } else { button = my_alert(2, 3, X_ICN_QUESTION, Messages(MENU_2), Messages(MENU_4)); if (button == 0 || button == 1 && (int)xbios(0x11) % 2) shutdown(FALSE); } break; /* menu Ouvre */ case UNITE_LOGIQUE: open_disk(); break; case OUVRE_DISQUETTE: raw_floppy(FALSE); break; case OUVRE_DISQUE_DUR: raw_hard(FALSE); break; case OUVRE_FICHIER: open_file(); break; case OUVRE_FICHIER_FS: open_file_other_fs(); break; case OUVRE_FICH_TEXTE: voir_fichier(); break; case CREER_FICHIER: creer_fichier(); break; case FERMER: fermer(Thefrontwin -> win -> handle); break; case LIRE_BOOT: lire_boot(); break; case CHARGER_BOOT: charger_boot(); break; case SAUVER_BOOT: sauver_boot(); break; case ECRIRE_BOOT: #ifdef TEST_VERSION /* relache la souris */ NoClick(); /* on attend avant de redessiner */ Event_Timer(0, 0, TRUE); my_alert(1, FAIL, X_ICN_STOP, Messages(MENU_6), NULL); #else ecrire_boot(); #endif break; /* menu Edition */ case SAUVER_SECTEUR: #ifdef TEST_VERSION /* relache la souris */ NoClick(); /* on attend avant de redessiner */ Event_Timer(0, 0, TRUE); my_alert(1, FAIL, X_ICN_STOP, Messages(MENU_6), NULL); #else save_secteur(Thefrontwin, MENU_EDITION); #endif break; case COPIER_SECTEUR: copier_tampon(Thefrontwin); break; case COLLER_SECTEUR: coller_tampon(Thefrontwin); break; case ECHANGER_TAMPON: echanger_tampon(Thefrontwin); break; case RETOUR_INITIAL: load_secteur(Thefrontwin, MENU_EDITION); break; case OUVRIR_TAMPON: ouvrir_tampon(); break; case SAUVER_TAMPON: sauver_tampon(); break; case CHARGER_TB_ASCII: ascii_tampon(); break; case EFFACER_TAMPON: effacer_tampon(); break; /* menu Structure */ case DEFRAGMENTATION: #ifdef TEST_VERSION /* relache la souris */ NoClick(); /* on attend avant de redessiner */ Event_Timer(0, 0, TRUE); my_alert(1, FAIL, X_ICN_STOP, Messages(MENU_6), NULL); #else reconnect(Drive); #endif break; case UNIQUE_LIBRE: #ifdef TEST_VERSION /* relache la souris */ NoClick(); /* on attend avant de redessiner */ Event_Timer(0, 0, TRUE); my_alert(1, FAIL, X_ICN_STOP, Messages(MENU_6), NULL); #else compresse(Drive); #endif break; case RESTO_COMPLETE: #ifdef TEST_VERSION /* relache la souris */ NoClick(); /* on attend avant de redessiner */ Event_Timer(0, 0, TRUE); my_alert(1, FAIL, X_ICN_STOP, Messages(MENU_6), NULL); #else restauration_complete(Drive); #endif break; case VIDE_CLST_LIBRES: nettoie_clusters_libres(Drive); break; case NETTOIE_REPERTOI: #ifdef TEST_VERSION /* relache la souris */ NoClick(); /* on attend avant de redessiner */ Event_Timer(0, 0, TRUE); my_alert(1, FAIL, X_ICN_STOP, Messages(MENU_6), NULL); #else nettoie_repertoire(Drive); #endif break; /* menu Deplacement */ case SECTEUR_SUIVANT: next_secteur(Thefrontwin); break; case SECTEUR_PRECEDEN: previous_secteur(Thefrontwin); break; case BLOC_SUIVANT: next_bloc(Thefrontwin); break; case BLOC_PRECEDENT: previous_bloc(Thefrontwin); break; case MARQUER_POSITION: marquer_position(Thefrontwin); break; case ALLER_MARQUE: goto_marque(Thefrontwin); break; case ALLER_SECTEUR: goto_secteur(Thefrontwin); break; case CHERCHER_CHAINE: search_first(Thefrontwin); break; case CHERCHER_NOUVEAU: search_next(Thefrontwin); break; /* menu Fenˆtres */ case CHOIX_FONTE: choix_fonte(Thefrontwin); break; case CHOIX_COULEURS: couleur(Thefrontwin); break; case TAILLE_IDEALE: taille_ideale(Thefrontwin); break; case ASCENSEURS: ascenseurs(Thefrontwin); break; case CYCLER_FENETRES: cycle_window(); break; case WINDOW_LIST_1: case WINDOW_LIST_2: case WINDOW_LIST_3: case WINDOW_LIST_4: case WINDOW_LIST_5: case WINDOW_LIST_6: case WINDOW_LIST_7: case WINDOW_LIST_8: case WINDOW_LIST_9: case WINDOW_LIST_10: { windowptr thewin; for (thewin = Firstwindow; thewin; thewin = thewin -> next) if (thewin -> menu_entry == object - WINDOW_LIST_1) make_frontwin(thewin); } break; /* menu Options */ case CONFIG_GENERALE: config_generale(); break; case CONFIG_DSK: config_disques(); break; case RACCOURCIS_CLAVI: raccourcis_clavier(); break; case DONNEES_ZORG: from_zorg_inf(TRUE); break; case DONNEES_SYSTEME: from_zorg_inf(FALSE); break; case INVALIDE_CACHE: if (Kbshift(FAIL) & 4) { int i; for (i=0; i<MAX_DEVICES; i++) change_disque(i, FALSE); } else change_disque(Drive, TRUE); break; case UPDATE_SYSTEME: if (Kbshift(FAIL) & 4) { int i; for (i=0; i<MAX_DEVICES; i++) update_systeme(i); } else update_systeme(Drive); break; case VISU_TEXTE: really_voir_fichier(Thefrontwin -> fonction.fichier.nom); break; case VISU_ASCII: secteur_ascii(Thefrontwin); break; case VISU_HEXA: secteur_hexa(Thefrontwin); break; case AFFICHE_DECIMAL: affichage_decimal(Thefrontwin); break; case FICHIER_ASSOCIE: secteur_file(Thefrontwin); break; case CURSEUR_VISIBLE: curseur_on(Thefrontwin); break; case CLIPBOARD_GEM: clipboard_gem(Thefrontwin); break; /* menu Aide */ case TABLE_ASCII: AsciiChar = m_ascii_box(AsciiChar, FALSE); break; case AIDE: aide(); break; case EXECUTER_PROG: lance_prg(); break; case RESET: if (Reset) { Reset = FALSE; menu_icheck(Menu, RESET, 0); } else { int button; button = my_alert(2, 3, X_ICN_QUESTION, Messages(MENU_3), Messages(MENU_5)); if (button == 1) shutdown(TRUE); else if (button == 0) reset(); } break; } return TRUE; } /* MenuSelect */
int main(int argc, char *argv[]) { int c; int n; int rval; char *p; setlocale(LC_ALL, ""); traceout = stderr; if (signal(SIGINT, SIG_IGN) != SIG_IGN) signal(SIGINT, onintr); initkwds(); initspaces(); STACKMAX = INITSTACKMAX; mstack = (stae *)xalloc(sizeof(stae) * STACKMAX); sstack = (char *)xalloc(STACKMAX); maxout = 0; outfile = NULL; resizedivs(MAXOUT); while ((c = getopt(argc, argv, "gst:d:D:U:o:I:")) != -1) switch(c) { case 'D': /* define something..*/ for (p = optarg; *p; p++) if (*p == '=') break; if (p == optarg) errx(1, "null variable cannot be defined"); if (*p) *p++ = EOS; dodefine(optarg, p); break; case 'I': addtoincludepath(optarg); break; case 'U': /* undefine... */ remhash(optarg, TOP); break; case 'g': mimic_gnu = 1; break; case 'd': set_trace_flags(optarg); break; case 's': synccpp = 1; break; case 't': mark_traced(optarg, 1); break; case 'o': trace_file(optarg); break; case '?': default: usage(); } argc -= optind; argv += optind; rval = 0; active = stdout; /* default active output */ bbase[0] = bufbase; if (!argc) { sp = -1; /* stack pointer initialized */ fp = 0; /* frame pointer initialized */ set_input(infile+0, stdin, "stdin"); /* default input (naturally) */ if ((inname[0] = strdup("-")) == NULL) err(1, NULL); inlineno[0] = 1; emitline(); macro(); } else for (; argc--; ++argv) { p = *argv; if (p[0] == '-' && p[1] == EOS) set_input(infile, stdin, "stdin"); else if (fopen_trypath(infile, p) == NULL) { warn("%s", p); rval = 1; continue; } sp = -1; fp = 0; if ((inname[0] = strdup(p)) == NULL) err(1, NULL); inlineno[0] = 1; emitline(); macro(); release_input(infile); } if (*m4wraps) { /* anything for rundown ?? */ ilevel = 0; /* in case m4wrap includes.. */ bufbase = bp = buf; /* use the entire buffer */ pbstr(m4wraps); /* user-defined wrapup act */ macro(); /* last will and testament */ } if (active != stdout) active = stdout; /* reset output just in case */ for (n = 1; n < maxout; n++) /* default wrap-up: undivert */ if (outfile[n] != NULL) getdiv(n); /* remove bitbucket if used */ if (outfile[0] != NULL) { (void) fclose(outfile[0]); } exit(rval); }
int main(int argc, char *argv[]) { int c; int n; char *p; if (signal(SIGINT, SIG_IGN) != SIG_IGN) signal(SIGINT, onintr); init_macros(); initspaces(); STACKMAX = INITSTACKMAX; mstack = xreallocarray(NULL, STACKMAX, sizeof(stae), NULL); sstack = xalloc(STACKMAX, NULL); maxout = 0; outfile = NULL; resizedivs(MAXOUT); while ((c = getopt(argc, argv, "gst:d:D:U:o:I:P")) != -1) switch(c) { case 'D': /* define something..*/ for (p = optarg; *p; p++) if (*p == '=') break; if (*p) *p++ = EOS; dodefine(optarg, p); break; case 'I': addtoincludepath(optarg); break; case 'P': prefix_builtins = 1; break; case 'U': /* undefine... */ macro_popdef(optarg); break; case 'g': mimic_gnu = 1; break; case 'd': set_trace_flags(optarg); break; case 's': synch_lines = 1; break; case 't': mark_traced(optarg, 1); break; case 'o': trace_file(optarg); break; case '?': usage(); } argc -= optind; argv += optind; initkwds(); if (mimic_gnu) setup_builtin("format", FORMATTYPE); active = stdout; /* default active output */ bbase[0] = bufbase; if (!argc) { sp = -1; /* stack pointer initialized */ fp = 0; /* frame pointer initialized */ set_input(infile+0, stdin, "stdin"); /* default input (naturally) */ macro(); } else for (; argc--; ++argv) { p = *argv; if (p[0] == '-' && p[1] == EOS) set_input(infile, stdin, "stdin"); else if (fopen_trypath(infile, p) == NULL) err(1, "%s", p); sp = -1; fp = 0; macro(); release_input(infile); } if (wrapindex) { int i; ilevel = 0; /* in case m4wrap includes.. */ bufbase = bp = buf; /* use the entire buffer */ if (mimic_gnu) { while (wrapindex != 0) { for (i = 0; i < wrapindex; i++) pbstr(m4wraps[i]); wrapindex =0; macro(); } } else { for (i = 0; i < wrapindex; i++) { pbstr(m4wraps[i]); macro(); } } } if (active != stdout) active = stdout; /* reset output just in case */ for (n = 1; n < maxout; n++) /* default wrap-up: undivert */ if (outfile[n] != NULL) getdiv(n); /* remove bitbucket if used */ if (outfile[0] != NULL) { (void) fclose(outfile[0]); } return exit_code; }
int main( int argc, char *argv[] ) { const char *progname = vfs::get_base_name(argv[0]); try { if(argc<=1) throw exception("usage: %s config.lua", progname); Lua::State VM; lua_State *L = VM(); Lua::Config::DoFile(L, argv[1]); const size_t Nx = size_t(Lua::Config::Get<lua_Number>(L, "Nx")); const size_t Ny = size_t(Lua::Config::Get<lua_Number>(L, "Ny")); const Real dt = Real( Lua::Config::Get<lua_Number>(L,"dt")); _rand.wseed(); //---------------------------------------------------------------------- //info for VisIt //---------------------------------------------------------------------- const string sim_name = "Sludge.v3"; const string sim_comment = "Simple Laponite Using Dissolved Gas"; const string sim_path = "."; //---------------------------------------------------------------------- // initialize MPI //---------------------------------------------------------------------- YOCTO_MPI; const string trace_name = "trace.dat"; VisIt:: TraceFile trace_file(MPI.CommWorldRank,trace_name ); //---------------------------------------------------------------------- // parallel VisIt //---------------------------------------------------------------------- VisIt:: SetupParallel( MPI, sim_name, sim_comment, sim_path, NULL); //---------------------------------------------------------------------- // Setup simulation //---------------------------------------------------------------------- Simulation sim(MPI, Coord(Nx,Ny), Vertex(10,10) ); __Grid::SaveDat( sim.mesh, "grid" + MPI.CommWorldID + ".dat"); sim.init_one_bubble("cc"); sim.bubbles.gamma = 0.0; sim.dt = dt; //---------------------------------------------------------------------- // Main Loop //---------------------------------------------------------------------- sim.initialize(); VisIt:: MainLoop(sim); return 0; } catch( const exception &e ) { std::cerr << e.what() << std::endl; std::cerr << e.when() << std::endl; } catch(...) { std::cerr << "Unhandled Exception" << std::endl; } return 1; }