请教一个在LINUX项目下用SOCKET传输二进制文件时碰到的问题

immaga 2003-10-17 11:24:57
在项目中,在网络上传输文件,使用int open(const char *pathname,int flags,int mode)函数,在NT下,flags 可用诸如 _O_TEXT( or _O_BINERY) | _O_RDONLY 的标记和修饰结合的方式来打开文本或二进制文件,但在LINUX/UNIX 下,没有找到此类修饰符,所以传输文本时没有问题 ,传输二进制文件时就有错误了。
请教该用何种方式打开二进制文件?有没有类似的修饰符?
...全文
92 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fierygnu 2003-10-17
  • 打赏
  • 举报
回复
core(酒载青山)说得对。
出了什么错误?
core 2003-10-17
  • 打赏
  • 举报
回复
Linux下所有的普通文件都是流文件,对于操作系统没有文本和二进制的区别
用open也可以,但比fopen要麻烦,你的错误处理程序要多写一些
你出问题的地方,应该不是文件类型引起的,而是处理数据有问题
westwind 2003-10-17
  • 打赏
  • 举报
回复
使用fopen族函数,因为可以按照二进制方式打开(man页有说明),不要用open。
另外open族在windows cygwin和linux下面表现不同,
在windws下面用cygwin的open。read会自动进行换行符转换。

23,110

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧