فهرست منبع

Removed errno assignment and added versioning

Aaro Saila 1 سال پیش
والد
کامیت
a378992a6d
1فایلهای تغییر یافته به همراه13 افزوده شده و 1 حذف شده
  1. 13 1
      cppfile.c

+ 13 - 1
cppfile.c

@@ -8,12 +8,25 @@
 
 #define BUF_SIZE 256
 
+const char* VERSION = "1.0";
+
+void check_version_arg(int argc, char** argv) {
+  for (int i = 0; i < argc; i++) {
+    if (strcmp(argv[i], "--version") == 0 || strcmp(argv[i], "-v") == 0) {
+      printf("cppfile version: %s\n", VERSION);
+      exit(0);
+    }
+  }
+}
+
 int main(int argc, char* argv[]) {
   if (argc <= 1) {
     printf("Too few arguments\n");
     return 1;
   }
 
+  check_version_arg(argc, argv);
+
   const bool HAS_INCLUDES = argc > 2;
   char name[strlen(argv[1]) + 2];
   strcpy(name, argv[1]);
@@ -29,7 +42,6 @@ int main(int argc, char* argv[]) {
     printf("File already exists.\n");
     return 2;
   }
-  errno = 0;
 
   const int fd = creat(path, S_IRUSR | S_IWUSR | S_IROTH);