summaryrefslogtreecommitdiff
path: root/reference/C/CONTRIB/OR_USING_C/02.3.c
diff options
context:
space:
mode:
authorTobias Klauser <tklauser@distanz.ch>2008-01-27 11:37:44 +0100
committerTobias Klauser <tklauser@xenon.tklauser.home>2008-01-27 11:37:44 +0100
commit7e0f021a9aec35fd8e6725e87e3313b101d26f5e (patch)
treeb1cacc4b24393f517aeb4610e9e1021f954307a8 /reference/C/CONTRIB/OR_USING_C/02.3.c
Initial import (2.0.2-6)2.0.2-6
Diffstat (limited to 'reference/C/CONTRIB/OR_USING_C/02.3.c')
-rw-r--r--reference/C/CONTRIB/OR_USING_C/02.3.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/reference/C/CONTRIB/OR_USING_C/02.3.c b/reference/C/CONTRIB/OR_USING_C/02.3.c
new file mode 100644
index 0000000..e669d00
--- /dev/null
+++ b/reference/C/CONTRIB/OR_USING_C/02.3.c
@@ -0,0 +1,50 @@
+#include <stdio.h>
+
+main(argc, argv)
+int argc;
+char **argv;
+{
+ int n;
+ FILE *from, *to;
+ char buf[BUFSIZ];
+
+ /*
+ * Check our arguments.
+ */
+ if (argc != 3) {
+ fprintf(stderr, "Usage: %s from-file to-file\n", *argv);
+ exit(1);
+ }
+
+ /*
+ * Open the from-file for reading.
+ */
+ if ((from = fopen(argv[1], "r")) == NULL) {
+ perror(argv[1]);
+ exit(1);
+ }
+
+ /*
+ * Open the to-file for appending. If to-file does
+ * not exist, fopen will create it.
+ */
+ if ((to = fopen(argv[2], "a")) == NULL) {
+ perror(argv[2]);
+ exit(1);
+ }
+
+ /*
+ * Note that we only write the number of characters fread
+ * read in, rather than always writing BUFSIZ characters.
+ */
+ while ((n = fread(buf, sizeof(char), BUFSIZ, from)) > 0)
+ fwrite(buf, sizeof(char), n, to);
+
+ /*
+ * Now close the files.
+ */
+ fclose(from);
+ fclose(to);
+ exit(0);
+}
+