关于vxwork文件系统(100分)

guzhilei1986 2009-01-15 04:27:12
我想问一下一下几个问题:

1:在fat32中根目录下最多可以有多少个文件生成?
2:在fat32中最多可以有多少级的目录存在?
3:fopen和fdopen还有open到底有什么不同?
4:w+,w,有什么不同?

谢谢。
...全文
356 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
土豆 2009-02-03
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 ppzzhhsky 的回复:]
根目录下最多可以放0xffff个目录
一般的系统都是放的512,只有个别系统不一样,但是怎么都不会超过0xffff个
关于fopend的参数w,w+, a, a+的问题:
1. w 以写方式打开文件,如果文件内容存在,那么内容会被首先清除掉
2. w+以读和写的方式打开文件,如果文件内容存在,那么内容会被首先清除掉

3. a 以追加方式打开文件,如果文件有内容,那么会在文件的末尾开始追加要写如的内容。
4. a+以读和追加的方式打开文件,如果文…
[/Quote]

楼上的还是尊重一下别人的劳动,好不好?
土豆 2009-02-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cool_ice1020 的回复:]
想问下 vxworks下支持FAT32吗?
[/Quote]
vxworks本身带VFAT文件系统,支持长度为63字节的文件名,貌似也支持12、16和32位FAT表,还真不清楚是不是可以完全兼容FAT32. 有谁对这个比较清楚的来解惑?
hadisiman_ren 2009-02-01
  • 打赏
  • 举报
回复
可以支持fat32文件系统
ppzzhhsky 2009-01-23
  • 打赏
  • 举报
回复
根目录下最多可以放0xffff个目录
一般的系统都是放的512,只有个别系统不一样,但是怎么都不会超过0xffff个
关于fopend的参数w,w+, a, a+的问题:
1. w 以写方式打开文件,如果文件内容存在,那么内容会被首先清除掉
2. w+以读和写的方式打开文件,如果文件内容存在,那么内容会被首先清除掉

3. a 以追加方式打开文件,如果文件有内容,那么会在文件的末尾开始追加要写如的内容。
4. a+以读和追加的方式打开文件,如果文件有内容,那么会在文件的末尾开始追加要写如的内容。

记住,带"+"表示在写的同时可以读可以写。
而open是用_O_WRONLY, _O_APPEND等参数,他们对应关系如下:
fopen open
w _O_WRONLY
w+ _O_RDWR
a _O_WRONLY | _O_APPEND
a+ _O_RDWR | _O_APPEND

而fdopen提供了以流文件的方式去访问I/O设备,这个是比较低级的操作。
ies_sweet 2009-01-22
  • 打赏
  • 举报
回复
谢过楼上指点。
土豆 2009-01-21
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 ies_sweet 的回复:]
我想问一个问题,
vxworks操作系统本身应该是不带文件系统的,
文件系统应该是可选组件吧?
请高手指点迷津。
[/Quote]

文件系统本身也是OS的一个组成部分,不过我们在讨论操作系统特性的时候一般的确没有包括文件系统,这个是个人理解了,只是看问题的角度而已。对于vxworks这样的操作系统,文件系统是可选的,你可以不要文件系统的。我以前做过一个项目,就没有用文件系统,直接讲文件写在flash上。Tornado/workbench中可以配置。
zhujinqiang 2009-01-20
  • 打赏
  • 举报
回复
路过 学习。
ies_sweet 2009-01-20
  • 打赏
  • 举报
回复
我想问一个问题,
vxworks操作系统本身应该是不带文件系统的,
文件系统应该是可选组件吧?
请高手指点迷津。
cool_ice1020 2009-01-19
  • 打赏
  • 举报
回复
想问下 vxworks下支持FAT32吗?
土豆 2009-01-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 FireAngel 的回复:]
引用 4 楼 steven_ml 的回复:
"
2. w+以读和写的方式打开文件,如果文件内容存在,那么内容会被首先清除掉
"

楼上朋友所理解的w+,我有不同的看法;
最近一周我一直在写文件操作这块的代码,发现如果文件内容存在,那么继续写东西的时候,文件中原来的内容是不会删掉的,新写的数据会在文件后面添加(当然具体位置要决定你在那里开始写数据).


你确信你理解对了吗?我现在没有vxworks的环境,所以没法在vxworks上实验,但是我…
[/Quote]
不好意思,代码有更正一下,循环次数不对。
#include<stdio.h>

FILE *stream;

int main( void )
{
char list[30];
int i, numwritten;
char* filename = "data2.txt";
// Open for write
if( (stream = fopen(filename, "w+" )) == NULL ) // C4996
{
printf( "Open file '%s' failed.\n", filename );
return -1;
}
for ( i = 0; i < 26; i++ )
list[i] = (char)('z' - i);
// Write 25 characters to stream
numwritten = fwrite( list, sizeof( char ), 26, stream );
printf( "Wrote %d items to %s\n", numwritten, filename );
fclose( stream );

return 0;
}
土豆 2009-01-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 steven_ml 的回复:]
"
2. w+以读和写的方式打开文件,如果文件内容存在,那么内容会被首先清除掉
"

楼上朋友所理解的w+,我有不同的看法;
最近一周我一直在写文件操作这块的代码,发现如果文件内容存在,那么继续写东西的时候,文件中原来的内容是不会删掉的,新写的数据会在文件后面添加(当然具体位置要决定你在那里开始写数据).
[/Quote]

你确信你理解对了吗?我现在没有vxworks的环境,所以没法在vxworks上实验,但是我在Linux和VC中试过,和我说的是一样的,这个应该是标准C库的操作,我不知道vxworks下会不会不同,找个已知文件试试好了。
/*
data.txt 开始的内容为:787878787878. 执行下面的程序后,内容变成:zyxwvutsrqponmlkjihgfedcba
*/

#include<stdio.h>

FILE *stream;

int main( void )
{
char list[30];
int i, numwritten;
char* filename = "data.txt";
// Open for write
if( (stream = fopen(filename, "w+" )) == NULL )
{
printf( "Open file '%s' failed.\n", filename );
return -1;
}
for ( i = 0; i < 25; i++ )
list[i] = (char)('z' - i);
// Write 25 characters to stream
numwritten = fwrite( list, sizeof( char ), 25, stream );
printf( "Wrote %d items to %s\n", numwritten, filename );
fclose( stream );

return 0;
}
steven_ml 2009-01-17
  • 打赏
  • 举报
回复
"
2. w+以读和写的方式打开文件,如果文件内容存在,那么内容会被首先清除掉
"

楼上朋友所理解的w+,我有不同的看法;
最近一周我一直在写文件操作这块的代码,发现如果文件内容存在,那么继续写东西的时候,文件中原来的内容是不会删掉的,新写的数据会在文件后面添加(当然具体位置要决定你在那里开始写数据).
steven_ml 2009-01-17
  • 打赏
  • 举报
回复
FireAngel 你的理解是对的;
guzhilei1986 2009-01-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 helenhf 的回复:]
1. 没有限制,只要你有空间存放
2. 由操作系统决定 ???????????????????vxwork系统那个呢?

3. fopen打开指定文件,参数为文件名字符串,返回文件指针FILE* fp
open打开指定文件,参数为文件名字符串,返回文件描述符int fd
fdopen关联指定文件描述符和文件指针,参数为文件描述符int fd,返回文件指针FILE* fp
4. w+续写文件,即从文件尾继续往下写,w重头写文件?????????????那a和a+是什么意思?
[/Quote]
土豆 2009-01-16
  • 打赏
  • 举报
回复
关于fopend的参数w,w+, a, a+的问题:
1. w 以写方式打开文件,如果文件内容存在,那么内容会被首先清除掉
2. w+以读和写的方式打开文件,如果文件内容存在,那么内容会被首先清除掉

3. a 以追加方式打开文件,如果文件有内容,那么会在文件的末尾开始追加要写如的内容。
4. a+以读和追加的方式打开文件,如果文件有内容,那么会在文件的末尾开始追加要写如的内容。

记住,带"+"表示在写的同时可以读可以写。
而open是用_O_WRONLY, _O_APPEND等参数,他们对应关系如下:
fopen open
w _O_WRONLY
w+ _O_RDWR
a _O_WRONLY | _O_APPEND
a+ _O_RDWR | _O_APPEND

而fdopen提供了以流文件的方式去访问I/O设备,这个是比较低级的操作。


helenhf 2009-01-15
  • 打赏
  • 举报
回复
1. 没有限制,只要你有空间存放
2. 由操作系统决定
3. fopen打开指定文件,参数为文件名字符串,返回文件指针FILE* fp
open打开指定文件,参数为文件名字符串,返回文件描述符int fd
fdopen关联指定文件描述符和文件指针,参数为文件描述符int fd,返回文件指针FILE* fp
4. w+续写文件,即从文件尾继续往下写,w重头写文件

2,187

社区成员

发帖
与我相关
我的任务
社区描述
xworks是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统。
社区管理员
  • VxWorks开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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