Operaciones con archivos en c

Necesito ser capaz de manejar ficheros mediante programas en c.
Utilizando las funciones incluidas en stdio.h consigo trabajar con ficheros secuenciales y aleatorios(escribir en ellos) y también renombrarlos o borrarlos. El problema es que también necesito poder recorrer los directorios y comprobar los ficheros que contienen y también copiar ficheros. Por último decir que necesitaría que funcionase tanto en windows como en linux.
Ya se que la cosa es un poco larga de responder pero si me puedes recomendar algún articulo al respecto o ejemplos estaría muy agradecido
Saludos y gracias

1 Respuesta

Respuesta
1
... ahora me pillas un poco en frío, pero intentaré orientarte un poco. Las funciones de la librería estándar de C van muy bien para manejar ficheros, aunque puedes encontrar ciertas carencias, como en todas partes. En cualquier caso, existe una función llamada system(), que recibe un comando del sistema operativo y lo ejecuta, por ejemplo un copy. Creo que con esta podrás salirte por la tangente en muchas ocasiones cuando se trate de manejar ficheros a nivel de S.O.. Eso, además, puede ser una ventaja para hacerlo funcionar en Windows y Linux, pues esa función debe encontrarse en ambas implementaciones del lenguaje.
Para moverte por los directorios tienes la función "chdir" (y relacionadas) del C. Pero vuelvo a lo mismo, prueba con system.
Las funciones findfirst y findnext te irán bien para explorar el contenido de los directorios, si lo necesitas.
Gracias lo de antes me resuelve casi todo el problema, sobre todo las funciones chdir, findfirst...
Lo del system ya lo sabía pero dado que en windows y en linux son distintos comandos ¿cómo puedo saber (dentro del código) si un programa se está ejecutando en windows o en linux?
Cada implementación de C o C++ depende, en mayor o menor medida, del S.O. bajo el que corre. Por ejemplo, si hablamos de Turbo C++ para DOS, tienes funciones que te dirán la versión de DOS y cosas por el estilo. Lo mismo pasa con Visual C++ y, supongo, con los C's de Linux. De hecho, y si se piensa bien, si quieres hacer correr un programa en Windows y Linux tendrás que compilarlo para ambos sistemas, con lo cual, en el momento de compilarlo, ya sabrás bajo qué S.O. correrá.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas