01/10/2018, 11:36

Hỏi cách kiểm tra OS nào đang chạy trên máy

Em đang viết 1 chương trình đơn giản tính size của file. Em viết cách tính bằng 3 cách 1. viết theo ngôn ngữ C, 2. viết theo hệ điều hành linux, 3. viết theo hệ điều hành window! Viết theo link này: https://stackoverflow.com/questions/238603/how-can-i-get-a-files-size-in-c.
Em có 1 thắc mắc là khi em xem dung lượng size của file trên 1 hệ điều hành(không dùng cách 1) người dùng chọn cách 2 hoặc 3 thì làm sao để chương trình người dùng đang sài hệ điều hành nào nếu lỗi thì thông báo lỗi. Em cảm ơn mấy anh/chị.

Dark.Hades viết 13:41 ngày 01/10/2018
#include <stdio.h>

#if defined(_WIN32) || defined(_WIN64)
        const char* os = "Windoze";
#else
#ifdef __linux
        const char* os = "Linux";
#else
        const char* os = "Unknown";
#endif
#endif

int main(void)
{
   printf("os = %s\n", os);
   return 0;
}
nghia viết 13:45 ngày 01/10/2018

Cái này là khi tự chạy thì hệ điều hành sẽ cho mình biết mình đang sữ dụng hệ điều hành nào à anh? Anh có thể giải thích cho em được không?

Dark.Hades viết 13:39 ngày 01/10/2018

Đây là macro do compiler nó tự định nghĩa sẵn, cứ theo đó mà làm thôi bạn

*grab popcorn* viết 13:39 ngày 01/10/2018

Cái trên là khi compile; compiler sẽ kiểm tra rằng hệ điều hành user đang chạy để compile là hệ điều hành gì từ đó sinh ra code tương ứng.

nghia viết 13:47 ngày 01/10/2018

Cảm ơn anh em sẽ tìm hiểu thêm về macro stdio.h ! Cảm ơn anh nhiều!

Dark.Hades viết 13:51 ngày 01/10/2018

macro stdio.h

Bạn hiểu nhầm rồi.stdio h.nó không liên quan đâu
Cái này nó do compiler tự định nghĩa

nghia viết 13:48 ngày 01/10/2018

Anh có thể cho em xin thêm link tìm hiểu thêm được không anh!

Dark.Hades viết 13:40 ngày 01/10/2018

https://sourceforge.net/p/predef/wiki/OperatingSystems/

Tao Không Ngu. viết 13:53 ngày 01/10/2018

HI nghia.

  1. Khi bạn build trên win thì nó chỉ chạy cho win, linux thì nó chỉ chạy trên linux nên bạn không cần phải lo :
    “chương trình người dùng đang sài hệ điều hành nào nếu lỗi thì thông báo lỗi.”
  2. Nếu bạn muốn viết một code có thể build chạy được cả win và linux thì có thể dùng macro
    https://gcc.gnu.org/onlinedocs/gcc-3.0.1/cpp_3.html
    Tuy nhiên cái này là tiền biên dịch nên do trình biên dịch xử lý bạn cần tìm hiểu kỹ các trình biên dịch khác nhau định nghĩa macro khác nhau không và nếu cần thì thêm cả macro cho chình biên dịch nữa.
nghia viết 13:49 ngày 01/10/2018

Cảm ơn anh nhiều! em Chỉ có thể viết như thế thôi!

Bài liên quan
0