aboutsummaryrefslogtreecommitdiffstats
path: root/OLD/csci5271/hw1/hw1p2b.c
diff options
context:
space:
mode:
authorMatt Strapp <matt@mattstrapp.net>2022-01-11 10:18:56 -0600
committerMatt Strapp <matt@mattstrapp.net>2022-01-11 10:18:56 -0600
commit6c9b79537f03115c5e2d4883fd407a6ac870bffd (patch)
treea26cecd37bb254795e8a847ca7235d5e7236ff54 /OLD/csci5271/hw1/hw1p2b.c
parentfinish 3606 (diff)
downloadhomework-6c9b79537f03115c5e2d4883fd407a6ac870bffd.tar
homework-6c9b79537f03115c5e2d4883fd407a6ac870bffd.tar.gz
homework-6c9b79537f03115c5e2d4883fd407a6ac870bffd.tar.bz2
homework-6c9b79537f03115c5e2d4883fd407a6ac870bffd.tar.lz
homework-6c9b79537f03115c5e2d4883fd407a6ac870bffd.tar.xz
homework-6c9b79537f03115c5e2d4883fd407a6ac870bffd.tar.zst
homework-6c9b79537f03115c5e2d4883fd407a6ac870bffd.zip
Resume and rearrange
Signed-off-by: Matt Strapp <matt@mattstrapp.net>
Diffstat (limited to 'OLD/csci5271/hw1/hw1p2b.c')
-rw-r--r--OLD/csci5271/hw1/hw1p2b.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/OLD/csci5271/hw1/hw1p2b.c b/OLD/csci5271/hw1/hw1p2b.c
new file mode 100644
index 0000000..df5ac73
--- /dev/null
+++ b/OLD/csci5271/hw1/hw1p2b.c
@@ -0,0 +1,28 @@
+#include <fcntl.h>
+#include <stdlib.h>
+#include <sys/stat.h>
+#include <unistd.h>
+void silly_function(char *pathname) {
+ struct stat f, we;
+ int rfd, wfd;
+ char *buf;
+ stat(pathname, &f);
+ stat("./critical", &we);
+ if (f.st_dev == we.st_dev && f.st_ino == we.st_ino) {
+ return;
+ }
+ rfd = open(pathname, O_RDONLY);
+ buf = malloc(f.st_size - 1);
+ read(rfd, buf, f.st_size - 1);
+ close(rfd);
+ stat(pathname, &f);
+ if (f.st_dev == we.st_dev && f.st_ino == we.st_ino) {
+ return;
+ }
+ wfd = open(pathname, O_WRONLY | O_TRUNC);
+ write(wfd, buf, f.st_size - 1);
+ close(wfd);
+ free(buf);
+}
+
+int main() { silly_function("./not"); } \ No newline at end of file