Summary Files Commits Branches @commit @diff @stats
path: root / Year 3 / System programming / Practice02 / ex2.c
diff options
context:
space:
mode:
1 files changed, 24 insertions, 0 deletions
-rw-r--r--Year 3/System programming/Practice02/ex2.c24
diff --git a/Year 3/System programming/Practice02/ex2.c b/Year 3/System programming/Practice02/ex2.c
new file mode 100644
index 0000000..6a8c420
--- /dev/null
+++ b/Year 3/System programming/Practice02/ex2.c
@@ -0,0 +1,24 @@
+#include <fcntl.h> // open, close, O_WRONLY, ...
+#include <unistd.h> // dup
+#include <stdio.h> // printf
+
+int main(int argc, char* argv[]) {
+ int f1 = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC, 0755);
+ if (f1 < 0) {
+ perror("open");
+ return 1;
+ }
+
+ close(1);
+
+ int f2 = dup(f1);
+ if (f2 < 0) {
+ perror("dup");
+ return 2;
+ }
+
+ printf("Hello World!\n");
+
+ close(f1);
+ close(f2);
+}