Dos métodos para realizar la función de copia de archivos en el sistema Linxu

Listo para trabajar:

  • Archivo de origen: file_sourse
  • Archivo de destino: file_goal
  • Archivo de ejecución: file_ex.c (los archivos que deben compilarse y ejecutarse usan el comando gcc)
  • El lenguaje C usa una biblioteca estándar para realizar la función de copia

Código principal

	FILE *fp,*fp1;
	int cnt;
	char buf[1024];
	fp=fopen("file_sourse","r");
	fp1=fopen("file_goal","w");
	fcloseall();
	while((cnt=fread(buf,1,sizeof(buf),fp)>0))
	{
	 	fwrite(buf,1,cnt,fp1);
	}

Si desea copiarlo nuevamente, debe usarlo aquífunción fseek

    fseek(fp,0,SEEK_SET);//重新定位到文件起始处
	while((cnt=fread(buf,1,sizeof(buf),fp)>0))
	{
	 	fwrite(buf,1,cnt,fp1);
	}
	fcloseall();

r Abrir el archivo en modo de lectura, lanzar una excepción si el archivo no existe
r + Abrir el archivo en modo de lectura y escritura, y lanzar una excepción cuando el archivo no existe
rs + Abrir el archivo en modo de lectura y escritura síncrona, notificar al sistema operativo para ignorar la caché del sistema (no se recomienda Usar)
w para abrir el archivo en forma de escritura, si el archivo no existe, créelo y sobrescríbalo si existe.
wx Similar a w, excepto que la operación falla cuando el archivo existe.
w + Abra el archivo en forma de lectura y escritura, y créelo si el archivo no existe., Si existe, sobrescriba
a. Abra el archivo en forma de anexo. Si el archivo no existe, create
ax. Similar a a, si el archivo existe, la operación fallará.
a + Abre el archivo en forma de lectura y escritura. Si el archivo no existe, crea
ax +. Similar a a +, la operación fallará si el archivo existe

  • Llamada al sistema para realizar la función de copia

Código principal

	int fd,fd1;
	int cnt;
	char buf[1024];
	fd=open("file_sourse",O_RDONLY);
	fd1=open("file_goal",O_WRONLY | O_CREAT,0644);
	close(fd);
	close(fd1);
	while((cnt=read(fd,buf,sizeof(buf))>0))
	{
	 	write(fd,buf,cnt);
	}

Si desea copiarlo nuevamente, debe usarlo aquífunción de búsqueda

	lseek(fd,0,SEEK_SET);//重新定位到文件起始处
	while((cnt=read(fd,buf,sizeof(buf))>0))
	{
	 	write(fd,buf,cnt);
	}
	close(fd);
	close(fd1);
  • para resumir

Combinando los dos métodos diferentes anteriores para la función de copia de archivos, no es difícil establecer las similitudes entre los dos métodos. No es necesario memorizar cómo usar estos métodos. A través de la práctica diaria, tendremos una impresión en nuestras mentes. , Más el uso del sistema LinuxhombreVenga a ayudar, se volverá cada vez más competente en comprender e incluso saber cómo usarlo.

Si hay alguna deficiencia, indíquelo, ¡gracias! ! !

Supongo que te gusta

Origin blog.csdn.net/HG0724/article/details/102466346
Recomendado
Clasificación