一個CGI程序,需要從Linux移植到Windows下,首先嘗試用VS2005,編譯,改程序嘗試了n次,搞不懂為什么,就是編譯通不過。后來用mingw來編譯,編譯通過了,但是工作卻不正常,通過cgi瀏覽圖片都不行,google之后,才知道windows下流模式分為Text和Binary兩種,如果輸入圖片等二進制數據,需要用setmode(fileno(stdout), O_BINARY)切換二進制的流模式,不過gcc總提示我O_BINARY沒有定義,一番google之后,知道了O_BINARY定義在fcntl.h中,加入對這個header文件的引用,終于沒有問題了。之前在linux下編寫這個程序時,錯誤的用printf輸出字節流,造成問題,后來man了之后,才知道必須用fwrite才可以輸出binary stream, 問題解決之后,才知道自己犯傻了,printf遇到\0就會終止輸出,我居然用printf輸入二進制流!在這里記錄一下。
隨筆分類
隨筆檔案
文章分類
文章檔案
博客
- 豬姐姐的博客
- My blogger