Buna ziua,<br><br>Sunt student in anul 1 (grupa 314CA) si m-am apucat sa studiez cursul de SO,<br>incluzand laboratoarele si temele. M-am apucat de programat tema 1 (mini-shell-ul),<br>dar la testele 03 si 09 intampin probleme (tests failed).<br>
<br>1) Am urmatoarea secventa de cod :<br><pre>      word_t *q = malloc(sizeof(word_t)); <br>      q = scmd-&gt;out;<br>      if (q != NULL)<br>          {<br>          fd_out = open(q-&gt;string, O_CREAT | O_WRONLY, 0600);<br>
          close(STDOUT_FILENO);<br>          dup(fd_out);<br>          }<br></pre>unde scmd este astfel : simple_command_t *scmd; .<br><br>Secventa de cod este dintr-o functie care proceseaza o comanda simpla (simple_command_t),<br>
si face ca output-ul sa se duca in fisierul specificat in comanda data shell-ului.<br><br>Acum, daca schimb O_CREAT | O_WRONLY cu O_CREAT | O_WRONLY | O_TRUNC,<br>testul 3 va trece, in schimb nu va mai trece testul 4 si testul 5.<br>
<br>Aveti vreo idee unde ar putea fi eroarea ?<br><br>2) La testul 9 iarasi am eroare, desi am cod de genul :<br><pre>          if (scmd-&gt;params == NULL)<br>              {<br>              int tmp = execlp((scmd-&gt;verb)-&gt;string, (scmd-&gt;verb)-&gt;string, (char *) NULL);<br>
              if (tmp == -1)<br>                  printf(&quot;Execution failed for &#39;%s&#39;\n&quot;, (scmd-&gt;verb)-&gt;string);              <br>              exit(tmp); }<br></pre>deci am mesajul de eroare care se cerea la testul 9.<br>
<br>Ma puteti ajuta, va rog si cu aceasta problema (unde ar putea fi bug-ul) ?<br><br>Va multumesc mult,<br>Alexandru.<br>