您的位置:首页 > 其它

vxworks dosfs文件系统文件读写测试

2013-07-17 23:49 726 查看
/**

******************************************************************************

* @file dosfsTest.c

* @author Daniel_Lee

* @version V1.0

* @date 2013.7.15

* @brief This is a test of using dosfs.

******************************************************************************

**/

/* Includes ------------------------------------------------------------------*/

#include "vxWorks.h"

#include "iv.h"

#include "intLib.h"

#include "sysLib.h"

#include "logLib.h"

#include "dosfsLib.h"

#include "ioLib.h"

#include "stdio.h"

STATUS dosfsTest(){

int fd,bytes = 0, length = 0;

unsigned char buf[64] = "Hello,I'm testing the file system";

unsigned char revBuf[64] = {0};

/*fd = creat("/D/my.txt",O_RDWR);

if(fd == -1){

logMsg("error: creat file failed\r\n",0,0,0,0,0,0);

return ERROR;

}*/

fd = open("/D/my.txt",O_RDWR,0);

if(fd == -1){

logMsg("error: open file failed\r\n",0,0,0,0,0,0);

return ERROR;

}

bytes = write(fd,buf,sizeof("Hello,I'm testing the file system"));

logMsg("write %d bytes data\r\n",bytes,0,0,0,0,0);

if(bytes != sizeof("Hello,I'm testing the file system")){

logMsg("error: write %d bytes data\r\n",bytes,0,0,0,0,0);

close(fd);

return ERROR;

}

close(fd);

fd = open("/D/my.txt",O_RDWR,0);

if(fd == -1){

logMsg("error: open file failed\r\n",0,0,0,0,0,0);

return ERROR;

}

bytes = read(fd,revBuf,sizeof(revBuf));

logMsg("read %d bytes data\r\n",bytes,0,0,0,0,0);

revBuf[9] = '\0';

logMsg("read %d bytes data, and read date is %s\r\n",bytes,revBuf,0,0,0,0);

close(fd);

return OK;

}
实验总结:数组在初始化时必须指明分配的空间大小,不能用变量初始化。

不能write后立马去读数据,因为在写数据的时候文件指针已经指向了文件尾部,马上读的话什么也读不出来,需要使用lseek设置偏移指针才可正确读出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: