Передача параметров в приложение

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by POS_troi, 27 Jul 2009.

  1. POS_troi

    POS_troi Elder - Старейшина

    Joined:
    1 Dec 2006
    Messages:
    1,569
    Likes Received:
    466
    Reputations:
    108
    Ткните носом в реализацию функции которая будет осуществлять парсинг параметров - передаваемых приложению. (интересует UNIX, в винде думаю аналогично)

    Пример:

    proga -f <параметр> -p <параметр> и т.д.


    З.Ы. желательно разложить на пальцах, ну или ткните носом в нормальную литературу по этому делу. (раньше с парсингом не сталкивался - передавал тупо)
     
  2. fker

    fker Member

    Joined:
    26 Nov 2008
    Messages:
    135
    Likes Received:
    64
    Reputations:
    -1
    getopt

    пример из сорцев нетката:
    Code:
    while ((x = getopt (argc, argv, "ade:g:G:hi:lLno:p:rs:tuvw:z")) != EOF) {
    /* Debug (("in go: x now %c, optarg %x optind %d", x, optarg, optind)) */
        switch (x) {
          case 'a':
    	bail ("all-A-records NIY");
    	o_alla++; break;
    #ifdef GAPING_SECURITY_HOLE
          case 'e':				/* prog to exec */
    	pr00gie = optarg;
    	break;
    #endif
    	        case 'L':				/* listen then cycle back to start instead of exiting */
    	o_listen++; 
      	cycle = 1;
    	  break;
    
    
            case 'd':				/* detach from console */
      	FreeConsole();;
    	  break;
    
    
          case 'G':				/* srcrt gateways pointer val */
    	x = atoi (optarg);
    	if ((x) && (x == (x & 0x1c)))	/* mask off bits of fukt values */
    	  gatesptr = x;
    	else
    	  bail ("invalid hop pointer %d, must be multiple of 4 <= 28", x);
    	break;
          case 'g':				/* srcroute hop[s] */
    	if (gatesidx > 8)
    	  bail ("too many -g hops");
    
     
    #2 fker, 27 Jul 2009
    Last edited: 27 Jul 2009
  3. alex912

    alex912 New Member

    Joined:
    7 Jun 2009
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    http://www.firststeps.ru/linux/r.php?10
     
  4. POS_troi

    POS_troi Elder - Старейшина

    Joined:
    1 Dec 2006
    Messages:
    1,569
    Likes Received:
    466
    Reputations:
    108
    2fker

    Этот какраз и описано как у меня как

    из какого заголовочника функция getopt ?

    2alex912

    Не то.. почти но не то.
     
  5. fker

    fker Member

    Joined:
    26 Nov 2008
    Messages:
    135
    Likes Received:
    64
    Reputations:
    -1
    "из какого заголовочника функция getopt ?"
    getopt.h =)
     
  6. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    http://exec.h1.ru/docs/glibc/glibc-22.html
     
    _________________________
  7. POS_troi

    POS_troi Elder - Старейшина

    Joined:
    1 Dec 2006
    Messages:
    1,569
    Likes Received:
    466
    Reputations:
    108
    Временно закрыто .
     
  8. razb

    razb Active Member

    Joined:
    24 Mar 2009
    Messages:
    658
    Likes Received:
    133
    Reputations:
    18
    man getopt

    _http://linux.die.net/man/3/getopt

    Там даже пример есть )