Có tương đương Win32 với tệp tiêu đề Linux không? Tôi đang làm việc trên một cổng Linux để Windows (và lần đầu tiên của tôi làm như vậy) và nó không thành công trên tập tin này.Windows <sys/file.h> tương đương
Trả lời
Khi viết ứng dụng WIN32API, bạn thường là #include <windows.h>
- bao gồm hầu hết API Windows trong ứng dụng của bạn. Nếu bạn cần phải cắt giảm một số trong số đó, #define WIN32_LEAN_AND_MEAN
sẽ quét sạch một số thứ ít người biết đến hơn từ thư viện Windows.
Bạn đang cố chuyển đổi những chức năng nào? Nó có thể sẽ là một trường hợp sử dụng một chức năng khác nhau trên WIN32; nó rất khác với Linux/Unix/POSIX.
Ví dụ: hàm ReadFile()
tương đương với read()
về ý tưởng chung, nhưng chữ ký gọi rất khác nhau. ReadFile() 's MSDN entry nói:
Tiêu đề: WinBase.h (bao gồm windows.h)
Nếu bạn đang porting các cửa sổ, nó sẽ dễ dàng hơn để dính vào vượt tiêu chuẩn nền tảng , hơn lặn thẳng vào một cửa sổ bản địa Api port (ala CreateFile).
Tôi không biết chức năng là gì, nó trông giống như một phần của tệp tiêu đề chuẩn POSIX, nhưng tôi không thể tìm thấy tham chiếu đến nó trong nguồn posix.
Có một vài môi trường xây dựng mà bạn có thể sử dụng để chuyển các ứng dụng linux/unix sang Windows.
- Nếu ứng dụng của bạn dính vào thư viện chuẩn C cho những thứ như tệp IO, Dev Studio sẽ hỗ trợ hầu hết nguyên bản. Ví dụ:
<stdio.h>
có những thứ nhưfopen
. - MinGW cung cấp một bộ công cụ, nhưng sử dụng thời gian chạy trên microsoft, vì vậy những thứ như thiếu pthread bị thiếu.
- Cygwin là môi trường xây dựng POSIX phù hợp hơn nhiều.
- SUA là sản phẩm của Microsofts.
Vì lợi ích của hậu thế, <sys/file.h>
là phiên bản BSD của các thường trình I/O tệp cấp thấp. Tùy thuộc vào cài đặt trình biên dịch và môi trường xây dựng của bạn, bạn có thể muốn thay vào đó là <fcntl.h>
. Hầu hết các quy trình I/O thông thường đều nằm trong số <stdio.h>
, thậm chí setvbuf()
là điều khiển cấp thấp. Bạn sẽ muốn <windows.h>
hoặc <conio.h>
nếu bạn muốn các thường trình/cài đặt I/O không thường tồn tại trong Linux (hoặc NICES khác).
- 1. Tương đương gettimeday() cho Windows
- 2. windows tương đương với inet_aton
- 3. AF_UNIX tương đương với Windows
- 4. $ _SERVER ['_'] tương đương trên Windows
- 5. Tại sao (?! ^) Tương đương với (? <! ^)?
- 6. CSS tương đương với <big>
- 7. WPF tương đương với Application.AddMessageFilter (Windows Forms)
- 8. D-Bus tương đương với Windows
- 9. Windows tương đương với OS X Keychain?
- 10. Lệnh Windows tương đương với egrep
- 11. của Windows Beep() tương đương cho Linux
- 12. Tương đương với Unix eval trong Windows
- 13. Windows tương đương với UNIX pwd
- 14. Tương đương với Windows/dev/random
- 15. tham gia tương đương trong Windows
- 16. của Windows batch tương đương với "fuser -k <folder>"
- 17. python tương đương tương đương
- 18. Có tương đương <<< EOD trong Ruby/Rails không?
- 19. Scala tương đương với Java java.lang.Class <T> Object
- 20. Tại sao = và <- không tương đương trong phạm vi()?
- 21. C# tương đương với Java tiếp tục <label>?
- 22. F # Tương đương với Enumerable.OfType <'a>
- 23. .NET tương đương với Java wildcard (IInterf <?>)?
- 24. Python tương đương với Perl trong khi (<>) {...}?
- 25. LINQ tương đương với Danh sách <T> .Find()?
- 26. mvc 3 tương đương với hàm <asp: repeater>?
- 27. C tương đương với linux của windows QueryPerformanceCounter
- 28. Tương đương với Linux mkdir -p trong Windows là gì?
- 29. Có tương đương với Thực hiện trên Windows không?
- 30. Tương đương với Windows getch() cho Mac/Linux treo
MinGW cung cấp, mặc dù về cơ bản chỉ cần quay lại ... –
susmits