Code für: Datei öffnen lesen und in andere schreiben?



  • Hallo,

    wer hat kruzen eleganten Code welche eine Datei kopiert, in deim die quelle un das ziel jeweil mit fopne gefönnen werden und die byte kopeit werden?





  • ist allerdings mit open, müsste aber anlog mit fopen auch gehen (glaub ich)...

    #include <stdio.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <unistd.h>
    #include <stdlib.h>
    
    int main(int argc, char* argv[]) {
    int fdesc1;
    int fdesc2;
    int readsize = 1;
    char *buffer;
    int writesize;
    int index = 0;
    
    if (argc!=4){
    printf("Bitte Quelle Ziel und Anzahl der Bytes mitangeben!\n");
    return 0;
    } 
    
    index = atoi(argv[3]);
    
    buffer = (char *)malloc(sizeof(char)*index);
    
    fdesc1 = open(argv[1], O_RDONLY);
    
    if(fdesc1 == -1)
    {
    	printf("Fehler beim oeffnen der Datei\n");
    	return 0;
    }
    
    fdesc2 = creat(argv[2], S_IRUSR | S_IWUSR);
    
    if(fdesc2 == -1)
    {
    	printf("Fehler beim erstellen der Datei!\n");
    	return 0;
    }
    
    readsize= read(fdesc1, buffer, index);
    
    if(readsize != 0 )
    {	
    
    	if (readsize == -1 )
    	{
    		printf("Fehler beim Lesen\n");
    	}
    
    	writesize = write(fdesc2, buffer, readsize);
    
    	if (writesize == -1 )
    	{
    		printf("Fehler beim Schreiben\n");
    	}
    }
    else
    {
    	printf("Sie haben 0 Bytes zum kopieren angegeben!?!\n");
    	return 0;
    }
    
    printf("Es wurden %i Bytes erfolgreich geschrieben\n", index);
    
    close(fdesc1);
    close(fdesc2);
    
    return 0;
    }
    

Anmelden zum Antworten