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 也成功,但是没有读回数据;在指定位置也没有找到创建的文件。。
请问是怎么回事?
集成开发环境自带的ftp没有打开吧
在开始菜单的tornado程序组中就看到了
我是用vxsim往主机上写文件,也需要ftp吗?之前vxsim从主机上读文件没有用ftp也行啊。
还有,在主机上事先创建一个空file,fopen不用wb而是用ab打开时,是能往里面写数据的。
糊涂了啊
一般操作文件时,在打开文件以后,
在最后结束的时候要有关闭文件的语句,
用fclose()函数来把两个文件关掉以后试试!
好象打开文件的时候是返回-1(失败)或者0(成功)吧!
!=null,就是判断打开失败了
不用ftp的话可以直接写文件名,不要带路径,default目录下就可以产生,带了路径可能有权限问题,要看ftp设置了