当前位置:  技术问答>linux和unix

高手快来帮我!UNIX下的二进制文件的问题

    来源: 互联网  发布时间:2015-07-13

    本文导语:  小第未用过UNIX,这方面知识几乎为0,想请教一个问题。 在UNIX下创建的二进制文件,在WINDOWS下能直接读出来吗?是否要经过某种转换? (小弟是在帮研究所搞一个多波束的项目): 例如在UNIX下创建一个二进制文件...

小第未用过UNIX,这方面知识几乎为0,想请教一个问题。
在UNIX下创建的二进制文件,在WINDOWS下能直接读出来吗?是否要经过某种转换?
(小弟是在帮研究所搞一个多波束的项目):
例如在UNIX下创建一个二进制文件:abc,
   unsigned long int date=20021120:
   把date写入abc,h是文件的句柄
   filewrite(h,&date,4);
现在要在WINDOWS下从abc读出这个date,
   unsigned long int date=0:
   fileread(h,&date,4);
   输出date,发现date=2155819265,
   
这是怎么回事呢?是不是不同的操作系统的数据存储方式不一样呢?
我这里没有UNXI 的机器,也不懂UNIX编程,
没法亲自试一试,请大家指点


|
你所说的UNIX是AIX吧?AIX系统是低字节在前,高字节在后,与X86的系统相反。
20021120=0X01317F80,把高低字节调换就是0X807F3101=2155819265。所以你得在写文件或者读文件时先做一次高低字节调换。

|
1、是字节序问题。big-endian和little-endian
2、你的转换方法里d和date必须是char*才对。对C的指针加法理解不深。
3、你的方法移植性不好。用byteorder系列函数:htonl等。

|
这个和CPU架构有关吧?Intel 86系列的long型在内存存储0x12345678整数的顺序是:

78 56 34 12

偶没有接触过其他CPU,所以不知道在其他CPU架构上是什么样子。C运行库函数fread只不过简单的把一块内存地址写入文件,不会考虑什么类型的。

如果你的文件是用运行在Intel 86系列上的unix创建的,那么用Windows读出来应该是一样。我在FreeeBSD创建的文件在Windows读出来的结果是一致的。

void test_fread()
{
    FILE* fp;
    long n;
    
    n = 0;
    fp = fopen("testfile", "rb");
    fread(&n, sizeof(long), 1, fp);
    fclose(fp);
    
    printf("n = %d (0x%x)n", n, n);
}

void test_fwrite()
{
    FILE* fp;
    long n;
    
    n = 0x12345678;
    fp = fopen("testfile", "wb");
    fwrite(&n, sizeof(long), 1, fp);
    fclose(fp);
}

    
 
 

您可能感兴趣的文章:

  • 【请教版主和高手】windows二进制存的中文资料文件,在linux下用二进制方式读取乱码,多谢!
  • 高手帮忙啊!linux中用arm-linux-gcc编译生成的二进制文件怎么复制到开发板里?
  • 十进制转换为二进制,sprintf函数怎么不好使呢,高手看看
  • 请高手解释一下硬件架构与可执行二进制文件的关系和依赖。具体问题如下:
  • 【高手和版主帮忙啊】请教linux移植过程中二进制中文文件的乱码问题
  • 请教高手:在request对象中取得multipart/form-data格式的二进制数据是不是用request.getInputStream呀?
  • 如何获取 文件类型?文件更新日期?多谢高手帮忙!
  • 高手请进:linux下使用.o文件,makefile文件的问题
  • 现急需bmp文件转换成jpg文件的java源代码,请高手们帮帮忙,分数可再加。
  • 请教高手一个简单问题:给定一个文件名,如何去查找该文件正在被几个程序使用,并怎么样才可以切断这个文件与正在打开该文件的程序之间的
  • java中使用jxl生成excel文件,在unix中比在windows中明显慢,有高手知道原因吗?或者说unix和windows的文件系统哪个更快?
  • linux系统哪些文件是相对稳定不变的?请高手帮忙!
  • 关于文件的传输问题,搞了一天了,请高手救命!
  • linux 下能否读写.dbf 或者.xls格式的文件,怎样读写?高手指点,拜谢!!!
  • ★★★在linux下编译pro*c文件,提示"sqlcxt"没有定义,哪位高手帮忙,定赠分!
  • 接前面的《继续讨论文件目录处理的,高手指点!!》
  • 请教高手--html页面中的表格数据直接存为excel文件格式
  • linux内核里面的所有头文件,有没有整理过的,请高手指点!谢谢!!!
  • 请各位高手!帮我说说文件配置如何进行!要详细的步骤!
  • linux 下,doxygen生成的html文件中文注释为乱码,请高手指教!
  • 读文件的问题,高手请进
  • 含有中文的文件处理(高手请进)
  • 请问高手一下linux下打开文件出现的问题
  • linux 下能否读写.dbf 或者.xls格式的文件,怎样读写?高手指点,拜谢!!! iis7站长之家
  • 求高手指点shell导入.dat文件到ORACLE数据库
  • 关于java读文件的难题,急需各位高手解答。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高手,高手,高高手请进!
  • 有熟悉EXIM的高手高手么??
  • to 高手:学java应该怎样一步步学习,从菜鸟到高手.
  • 高分请高手,高手定能解决
  • 请问高手在linux中用什么命令可以做linux的启动盘???在等待高手??
  • 有高手研究Agent++麽?里面有个thread.h,蛮难读的,请高手指点
  • 难道高手区里的人就是高手?
  • 在dos下用bc31挑战高手******开发mssql程序,连接时报link err:undefined symbol GETNOTE in module DBEXTERN?(挑战高手)
  • 真正的linux高手,请看过来,看你符合高手标准不?
  • 难道这没有高手吗?难道这没有乐于助人的高手?(高分酬谢62+50+50)
  • 关于我对linux高手用yum,非高手用源码的理由
  • 高手救命,很急——ORACLE817安装在UNIXWARE711上,手工启动数据库后在netasst中连接错误,高手帮我看看?
  • 请教高手lvs的奇怪问题,我挺着急,希望高手别潜水,就就我,先谢谢了
  • 各个高手看看这个问题!本人第一次学习java所以要各位高手的帮助。。
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 我是新手,高手,高手,快来救我
  • EJB问题,请教高手(非高手莫进)
  • 请各位JAVA高手,网业高手看过来,我把能给的分都送出!!!只能给37分,哎!!
  • eWEEK沙龙征集高手座谈


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3