Advertisement
heavenriver

writer.c

Nov 30th, 2013
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.91 KB | None | 0 0
  1.  /* exercise on UNIX file system */
  2.  /* useful characters: [] # */
  3.  
  4.  # include <stdio.h>
  5.  # include <string.h>
  6.  
  7.  # define errormsg(x) { puts(x); exit(1); }
  8.  # define BUFFER 1024
  9.  
  10.  int main(int argc, char * argv[])
  11.     {
  12.      int current, previous; // current and previous chars/bytes? read
  13.      char *buffer[BUFFER];
  14.      int result = read(0, buffer, BUFFER); // reads everything that can be stored FROM STDIN
  15.      while(result) // loops for as long as there is data to read
  16.     {
  17.      current = 0;
  18.      previous = 0;
  19.      do {
  20.          previous = previous + current;
  21.          result = write(1, &buffer, result - previous); // writes everything TO STDOUT
  22.     } while(current + previous < result); // ... until the space runs out
  23.      result = read(0, buffer, BUFFER); // begins reading again
  24.     }
  25.     }
  26.  // why current + previous < result? can't all chars/bytes be written just by using:
  27.  // result = write(1, &buffer, BUFFER) ?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement