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ị.
Hỏi cách kiểm tra OS nào đang chạy trên máy
#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;
}
3 Likes
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?
Đây là macro do compiler nó tự định nghĩa sẵn, cứ theo đó mà làm thôi bạn
3 Likes
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.
3 Likes
Cảm ơn anh em sẽ tìm hiểu thêm về macro stdio.h ! Cảm ơn anh nhiều!
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
1 Like
Anh có thể cho em xin thêm link tìm hiểu thêm được không anh!
HI nghia.
- 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.” - 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.
1 Like
Cảm ơn anh nhiều! em Chỉ có thể viết như thế thôi!