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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

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

noch ein Fehler auftreten. Natürlich achten wir deshalb beim Schließen der<br />

Datei auch noch auf diese Möglichkeit.<br />

1 #include <br />

2 #include <br />

3 #include <br />

4 #include <br />

5 #include <br />

Beispiel 2.3. read-data.c<br />

6<br />

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

8 {<br />

9 int fd;<br />

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

11 char data[45];<br />

12 ssize_t br, bw;<br />

13<br />

14 fd = open( filename , O_RDONLY );<br />

15 if( fd < 0 )<br />

16 {<br />

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

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

19 exit( EXIT_FAILURE );<br />

20 }<br />

21<br />

22 br = read( fd, data, sizeof( data ) );<br />

23 if( br != sizeof( data ) )<br />

24 {<br />

25 if( br < 0 )<br />

26 {<br />

27 printf( "Lesefehler: %s\n", strerror( errno ) );<br />

28 exit( EXIT_FAILURE );<br />

29 }<br />

30 else<br />

31 printf( "Konnte nur %d Bytes lesen: %s\n", br );<br />

32 }<br />

33<br />

34 bw = write( STDOUT_FILENO , data, br );<br />

35 if( bw != br )<br />

36 {<br />

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

38 exit( EXIT_FAILURE );<br />

39 }<br />

40<br />

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

42 {<br />

43 printf( "Konnte die Datei ’%s’ nicht schließen: %s\n",

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!