Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Mit Argumenten in eine Datei schreiben...

  1. #1
    Registrierter Benutzer
    Registriert seit
    21.11.2004
    Beiträge
    5

    Mit Argumenten in eine Datei schreiben...

    Ich habe folgendes Problem...! Ich möchte gerne ein Programm schreiben, dass 2 Argumente übergeben bekommt...! Im ersten solle in Dateiname stehen, der überprüft werden soll, ob die Datei vorhanden ist. Wenn nicht soll sie angelegt werden, wenn ja soll direkt darin geschrieben werden...! Soweit klappt es auch, nur das schreiben bekomme ich nicht hin...!

    Habe bislang folgendes geschrieben...

    #include <stdio.h>
    #include <unistd.h>
    #include <fcntl.h>

    main(int arg, char *argv[])
    {
    int in,count;
    char buffer[1024];


    in = open(argv[1],O_RDWR|O_APPEND|O_CREAT,0644);

    while(count = read(sizeof(argv[2]),buffer,1024))
    write(in,buffer,count);



    close(in);

    }Das wird auch anstandslos durchkompiliert, nur beim ausführen erzeugt er die Datei und hängt sich dann auf bevor etwas geschrieben wird...! Sitze jetzt schon 2 Tage drann und weiss nichtmehr weiter.... kann mir jemand weiterhelfen...?

  2. #2
    Registrierter Benutzer
    Registriert seit
    10.04.2001
    Ort
    Bremen
    Beiträge
    339
    Hi!

    Was willst du genau machen?
    Habs jetzt mal so interpretiert das du das 2te Argument an die Datei vom ersten Argument anhängen willst.

    Code:
    #include <sys/types.h>
    #include <sys/uio.h>
    #include <unistd.h>
    #include <fcntl.h>
    #include <string.h>
    
    int main(int argc, char *argv[])
    {
      int in;
      if(argc < 3) return -1;
      in = open(argv[1], O_RDWR | O_APPEND | O_CREAT, 0644);
      if(in == -1) return -1;
      write(in, argv[2], strlen(argv[2]));
      close(in);
      return 0;
    }
    c ya,
    Tobias

  3. #3
    Registrierter Benutzer
    Registriert seit
    21.11.2004
    Beiträge
    5
    Super... besten Dank, dass war genau das was ich wollte...! Ist so simpel wenn man es dann sieht... Irgendwie ärgerlich das man nicht drauf gekommen ist...

  4. #4
    Registrierter Benutzer
    Registriert seit
    21.11.2004
    Beiträge
    5
    Ich habe jetzt noch ein wenig mit einem Programm gebastelt was ähnlich wie der cat Befehl funktioniert, ist ja uach soweit kein Problem...! Ich würde jetzt nur gerne das wite Programm so abändern, dass beim zweiten Aufruf der neu angefügte String erst nach einem Leerzeichen geschrieben wird...!

    Ich dachte mir dass das sicher mir lseek machbar ist, aber da tut sich leider nicht viel... habe das jetzt so abgeändert:

    Zitat Zitat von tkortkamp
    Code:
    #include <sys/types.h>
    #include <sys/uio.h>
    #include <unistd.h>
    #include <fcntl.h>
    #include <string.h>
    
    int main(int argc, char *argv[])
    {
      int in;
      if(argc < 3) return -1;
      in = open(argv[1], O_RDWR | O_APPEND | O_CREAT, 0644);
      if(in == -1) return -1;
      lseek(in, 1L, SEEK_END);
      write(in, argv[2], strlen(argv[2]));
      close(in);
      return 0;
    }
    Kann mir jemand sagen wieso das nicht klappen will...?

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •