add launch section to report

This commit is contained in:
Chris Cromer 2021-07-17 14:15:52 -04:00
parent 3598aa7969
commit cf4161d545
4 changed files with 29 additions and 1 deletions

20
doc/code/launch.txt Normal file
View File

@ -0,0 +1,20 @@
void launch_program(StringArray *args) {
pid_t child = 0;
child = fork();
if (child == 0) {
if (execvp(args->array[0], args->array) == -1) {
fprintf(stderr, "%s: command not found\n", args->array[0]);
free_string_array(args);
exit(EXIT_FAILURE);
}
}
else if (child < 0) {
perror("fork");
}
else {
int child_status;
waitpid(child, &child_status, 0);
}
}

View File

@ -1,3 +1,4 @@
\section{Código}
\input{sections/codigo/ciclo}
\input{sections/codigo/builtins}
\input{sections/codigo/builtins}
\input{sections/codigo/launch}

View File

@ -1,3 +1,4 @@
\newpage
\subsection{Builtins}
Los builtins son comandos que son parte del shell, por lo tanto el sistema operativo no los proporciona. Un ejemplo es el comando\
''exit''. Este comando no existe en el sistema operativo, por lo tanto el shell debe actuar cuando el usuario lo escribe en vez\

View File

@ -0,0 +1,6 @@
\newpage
\subsection{Launch}
Launch(lanzar) es la parte responsable por permutar un programa que está en el sistema operativo o en PATH. Para hacer eso\
primer hacemos un fork donde el hijo permuta la operación y el padre espera que su hijo termina. Luego pasamos un nombre\
de programa a lanzar y sus argumentos al execvp para permutar en el hijo.
\lstinputlisting{code/launch.txt}