Duda con implementacion de c sobre linux

theruls

Hola buenas , tengo una duda tengo que implementar la funcion del comando cp,es decir cp f1 f2 f3 f4 .... fichero destino,es decir tengo que copiar los ficheros , y pegarlos en fichero destino,mi duda es la siguiente ,donde puedo encotrar informacion, o que funciones hay que hagan cosas como esa,vaya que estoy un poco pez.

muchas gracias por las respuestas, si hay algun problema lo siento soy novato en el foro

r2d2rigo

Pues eso que quieres hacer es basico... busca cualquier tutorial de tratamiento de ficheros en C, pero si de buenas a primeras vienes preguntando esto, mal vas.

Obten la lista de parametros del programa, crea un archivo nuevo, y por cada archivo especificado lo abres, lo lees y lo escribes en el fichero maestro.

theruls

muchas gracias pero tendria que usar llamadas al sistema de unix,ya que tendria que ejecutarse alli,en windows si lo se hacer.
Encontre esto, y estoy tirando con ello
http://ubuntubd.files.wordpress.com/2009/12/linux-system-call-quick-reference.pdf

muchas gracias y lo siento si te molesto mi duda

r2d2rigo

Vale, que tienes que hacerlo con syscalls, eso ya es mas complicado si no has usado mucho Unix/Linux. Mejor leete esta referencia, que tiene lo que hace cada funcion con los parametros que necesita. Te digo mas o menos por encima:

1- crea el fichero con open, de flags le pones O_CREAT | O_WRTONLY.
2- vas abriendo los demas ficheros secuencialmente, de flag al open le pones O_RDONLY
3- lee con read hasta que devuelva el valor 0; esto te indica que ha llegado al final del fichero y no hay nada mas para leer.
4- escribe en el fichero maestro con write.
5- cierra los ficheros segun dejas de necesitarlos con close.

B

Lo que quiere el es más fácil, creo yo. Tiene que coipar el fichero entero, no su contenido. Entonces lo que tiene que hacer es preparar un string con un comando co y hacer system(STRING). ¿no? Busca comando cp UNIX.

B

Añado a #4 que te acuerdes de liberar el buffer cuando leas (no estoy seguro si la función read lo hace y es el típico error que te puede tocar los huevos si no te da tiempo).

Respecto a #5 yo lo haría como #4 xD

E

te lo han dicho todo, pero por poner la puntilla... xD
empieza programando lo típico de:
Leer y ver si es correcta la orden, leer y ver si son correctos el número de parámetros, si no, tiras error. Si son correctos, pues haces lo que te han dicho arriba.

Usuarios habituales