Ayuda programacion en UNIX

Hola compañeros, tengo dentro de poco un examen de sistemas operativos y tengo unas cuantas dudas que no se resolver.

si hago un dup de un descriptor de TDF que esta vacio que ocurre?

Cuales son las diferencias entre definir variables antes o despues del main?

Al hacer un open si el fichero ya existe en la T.F.A. vuelve a crear otra entrada?Supongo que no claro, pero pone el cursor puntero al incio o lo deja donde estaba?

Las pipes no se comparten entre ficheros, no?Solo entre procesos

como hago un exec de un programa con varios argumentos?

Muchas gracias por la ayuda, C os lo pague
Psikonetik escribió:si hago un dup de un descriptor de TDF que esta vacio que ocurre?

Mira la manpage de dup para ver qué sucede en caso de error.

Psikonetik escribió:Cuales son las diferencias entre definir variables antes o despues del main?

http://www.metonymie.com/apuntes/2008/0 ... -en-c.html

Psikonetik escribió:Al hacer un open si el fichero ya existe en la T.F.A. vuelve a crear otra entrada?Supongo que no claro, pero pone el cursor puntero al incio o lo deja donde estaba?

Puedes comprobar mediante fileno lo que sucede con los descriptores al abrir varias veces el mismo archivo, y con ftell puedes conocer la posición del cursor.

Psikonetik escribió:Las pipes no se comparten entre ficheros, no?Solo entre procesos

No sé a qué te refieres por compartirlas entre ficheros.

Psikonetik escribió:como hago un exec de un programa con varios argumentos?

Hay varias opciones dependiendo de cómo pongas los argumentos y la ruta: execl, execv, execlp, execle, execvp, execve, execvpe, y creo que me dejo alguna. Hay muchísima información por ahí, por ejemplo: http://sopa.dis.ulpgc.es/prog_c/PROCES.HTM#Heading5
Muchas gracias por responder

He estudiado la asignatura teoricamente, no tengo ni idea de lo que es filenoni ftell.
Creo que mas o menos me han quedado claro las demas cosas, pero me vendria muy bien saber que pasa al hacer un open de un fichero que ya esta abierto en otro descriptor de fichero, es decir, que hace con el cursor, si lo deja donde esta o lo pone a cero.
Psikonetik escribió:Muchas gracias por responder

He estudiado la asignatura teoricamente, no tengo ni idea de lo que es filenoni ftell.
Creo que mas o menos me han quedado claro las demas cosas, pero me vendria muy bien saber que pasa al hacer un open de un fichero que ya esta abierto en otro descriptor de fichero, es decir, que hace con el cursor, si lo deja donde esta o lo pone a cero.

Son funciones de stdio.h. La idea era que hicieras algún programa de ejemplo en vez de decírtelo yo :P

int fileno(FILE *stream);

The function fileno() examines the  argument  stream  and  returns  its
       integer descriptor.

long ftell(FILE *stream);

The ftell() function obtains the current value  of  the  file  position
       indicator for the stream pointed to by stream.

Cuando abres un archivo ya abierto se crea otro descriptor con el cursor en 0, el descriptor que ya había no se modifica.
3 respuestas