05.11.2013 Aufrufe

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

2.2 Ein- <strong>und</strong> Ausgabe 27<br />

33–38<br />

der Zeichenkette enthalten sind, in unserem Fall also 9 × 5 = 45 Zeichen. Im<br />

Fehlerfall beendet sich das Programm <strong>mit</strong> einer passenden Meldung.<br />

Zum Schluß wird die Datei wieder geschlossen. Eine eventuelle Fehlersituation,<br />

die z. B. durch einen Schreib- oder Lesefehler des Dateisystems auch beim<br />

Schließen der Datei noch auftreten kann, wird vom Beispiel ebenfalls beachtet.<br />

1 #include <br />

2 #include <br />

3 #include <br />

4 #include <br />

5 #include <br />

6 #include <br />

Beispiel 2.2. write-data.c<br />

7<br />

8 int main( int argc, char *argv[] )<br />

9 {<br />

10 int fd;<br />

11 mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;<br />

12 char filename[] = "read.data";<br />

13 char text[] = "0123\n" "4567\n" "89ab\n" "cdef\n"<br />

14 "ghij\n" "klmn\n" "opqr\n" "stuv\n" "wxyz\n";<br />

15 ssize_t bw;<br />

16<br />

17 fd = open( filename , O_WRONLY | O_CREAT | O_TRUNC , mode );<br />

18 if( fd < 0 )<br />

19 {<br />

20 printf( "Kann die Datei ’%s’ nicht öffnen: %s\n",<br />

21 filename , strerror( errno ) );<br />

22 exit( EXIT_FAILURE );<br />

23 }<br />

24<br />

25 bw = write( fd, text, strlen( text ) );<br />

26 if( bw != strlen( text ) )<br />

27 {<br />

28 printf( "Konnte nur %d Bytes schreiben.\n", bw );<br />

29 exit( EXIT_FAILURE );<br />

30 }<br />

31<br />

32 if( close( fd ) != 0 )<br />

33 {<br />

34 printf( "Konnte die Datei ’%s’ nicht schließen: %s\n",<br />

35 filename , strerror( errno ) );<br />

36 exit( EXIT_FAILURE );<br />

37 }<br />

38<br />

39 return( EXIT_SUCCESS );<br />

40 }

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!