environ #15

Merged
cromer merged 27 commits from environ into master 2021-07-17 22:15:24 -04:00
4 changed files with 29 additions and 1 deletions
Showing only changes of commit cf4161d545 - Show all commits

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/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}