[so] Tema1 - Problema mini-shell Windows la citirea / executarea comenzilor simple

Alexandru Agape s3viyor at gmail.com
Thu Aug 6 13:34:28 EEST 2009


Buna!

Daca imi aduc aminte bine, problema ar fi din cauza ca trebuie ca root=NULL
cand e pasat ca parametru lui parse_line (parca chiar asta era asertul
respectiv).


On Wed, Aug 5, 2009 at 2:04 PM, ana-maria lepar <amylepar at gmail.com> wrote:

> Salut,
>
> Am incercat sa fac cum mi-ai sugerat .
> Am facut un fisier comenzi.txt  care arata asa :
> =================================
> ipconfig
> notepad.exe
> help
> cls
> quit
> =================================
> Am rulat si am obtinut urmatorul rezultat :
>
>   =================================
> C:\Documents and Settings\ana\My Documents\Downloads\codul meu -marti\codul
> meu
> -marti>mini-shell.exe < comenzi.txt
> >
> Windows IP Configuration
>
>
> Ethernet adapter Local Area Connection 3:
>
>         Connection-specific DNS Suffix  . : jinny.ro
>         IP Address. . . . . . . . . . . . : 192.168.2.154
>         Subnet Mask . . . . . . . . . . . : 255.255.0.0
>         Default Gateway . . . . . . . . . : 192.168.0.1
>
> Ethernet adapter Local Area Connection 4:
>
>         Media State . . . . . . . . . . . : Media disconnected
>
> Ethernet adapter Local Area Connection 2:
>
>         Media State . . . . . . . . . . . : Media disconnected
>
>
> > Assertion failed: false, file parser.y, line 529
>
> This application has requested the Runtime to terminate it in an unusual
> way.
> Please contact the application's support team for more information.
>
> C:\Documents and Settings\ana\My Documents\Downloads\codul meu -marti\codul
> meu
> -marti>
> =================================
>
>
> Deci imi ruleaza prima coamnda si pe urma se blocheaza  si imi apare
> eroarea de mai sus.  Problema este in for-ul din main, nu la CreateProcess
> [am rulat separat ExecuteCommand pentru comenzile de mai sus si merge] ,
> adica aici :
>
> ===============
> /*! fn int main()
>     @brief mainul; este mini-shellul in care se ruleaza comenzile
>     @param fara parametri
>     @return 0 la succes; -1 la esec
> */
> int main(void)
> {
>     string line;
>     command_t* root = NULL;
>
>     for (;;) {
>         cout << "> ";
>         getline(cin, line);
>         if ((line.length() == 0) && !cin.good()) {
>             // end of file reached
>             cerr << "End of file!" << endl;
>             return EXIT_SUCCESS;
>         }
>
>         if (parse_line(line.c_str(), &root)) {
>
>             if (root == NULL) {
>                 cout << "Command is empty!" << endl;
>             }
>             else {
>                 // root points to a valid command tree
>                 // that we can use
>                 ExecuteCommand(root);
>
>             }
>         }
>         else {
>             // there was an error parsing the command
>             cout << "Error parsing!" << endl;
>         }
>
>         cout << endl << endl;
>         free_parse_memory();
>     }
> =====================
>
> Sugestii?
>
> Multumesc
> Ana
> 332cc
>
>
> _______________________________________________
> so mailing list
> so at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20090806/26909261/attachment.htm>


More information about the so mailing list