[VxWorks] vxworks fopen fwrite

yujiezs   2009-7-3 15:35 楼主
void writeb( void )
{
   FILE *stream;
   char list[30],lista[30];
   int  i, numread, numwritten;

   /* Open file in text mode: */
   if( (stream = fopen( "host:d:/temp/tstf/a.txt", "w+b" )) != NULL )
   {
      for ( i = 0; i < 25; i++ )
         list = (char)('z' - i);
      /* Write 25 characters to stream */
      numwritten = fwrite( list, sizeof( char ), 25, stream );
      printf( "Wrote %d items\n", numwritten );   
      fclose( stream );

   }
   else
      printf( "Problem opening the file\n" );

   if( (stream = fopen( "host:d:/temp/tstf/a.txt", "r+b" )) != NULL )
   {
      /* Attempt to read in 25 characters */
      numread = fread( lista, sizeof( char ), 25, stream );
      printf( "Number of items read = %d\n", numread );
      printf( "Contents of buffer = %.25s\n", lista );
      fclose( stream );
   }
   else
      printf( "File could not be opened\n" );
}

将程序下到vxsim里面,shell运行writeb,显示写文件25个字节成功,写完后再fopen for read 也成功,但是没有读回数据;在指定位置也没有找到创建的文件。。


请问是怎么回事?

回复评论 (7)

help!!help!!
点赞  2009-7-3 16:17
集成开发环境自带的ftp没有打开吧
在开始菜单的tornado程序组中就看到了
点赞  2009-7-5 21:52
我是用vxsim往主机上写文件,也需要ftp吗?之前vxsim从主机上读文件没有用ftp也行啊。

还有,在主机上事先创建一个空file,fopen不用wb而是用ab打开时,是能往里面写数据的。
糊涂了啊
点赞  2009-7-5 22:08
一般操作文件时,在打开文件以后,
在最后结束的时候要有关闭文件的语句,
用fclose()函数来把两个文件关掉以后试试!
点赞  2009-7-22 22:24
好象打开文件的时候是返回-1(失败)或者0(成功)吧!
!=null,就是判断打开失败了
点赞  2009-8-7 12:38
引用: 引用 2 楼 chngok 的回复:
集成开发环境自带的ftp没有打开吧
在开始菜单的tornado程序组中就看到了


应该是这样。
点赞  2009-8-8 11:55
不用ftp的话可以直接写文件名,不要带路径,default目录下就可以产生,带了路径可能有权限问题,要看ftp设置了
点赞  2009-10-26 14:51
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复