5851|16

76

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于vxwork文件系统(100分) [复制链接]

我想问一下一下几个问题:

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

谢谢。

最新回复

楼上的还是尊重一下别人的劳动,好不好?  详情 回复 发表于 2009-2-3 13:50
点赞 关注

回复
举报

80

帖子

0

TA的资源

一粒金砂(初级)

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

回复

87

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
引用 1 楼 helenhf 的回复:
1. 没有限制,只要你有空间存放
2. 由操作系统决定 ???????????????????vxwork系统那个呢?

3. fopen打开指定文件,参数为文件名字符串,返回文件指针FILE* fp
  open打开指定文件,参数为文件名字符串,返回文件描述符int fd
  fdopen关联指定文件描述符和文件指针,参数为文件描述符int fd,返回文件指针FILE* fp
4. w+续写文件,即从文件尾继续往下写,w重头写文件?????????????那a和a+是什么意思?
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

4
 
关于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设备,这个是比较低级的操作。


 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

5
 
"
2. w+以读和写的方式打开文件,如果文件内容存在,那么内容会被首先清除掉
"

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

回复

65

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 4 楼 steven_ml 的回复:
"
2. w+以读和写的方式打开文件,如果文件内容存在,那么内容会被首先清除掉
"

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


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

#include

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 = (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;
}
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 5 楼 FireAngel 的回复:
引用 4 楼 steven_ml 的回复:
"
2. w+以读和写的方式打开文件,如果文件内容存在,那么内容会被首先清除掉
"

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


你确信你理解对了吗?我现在没有vxworks的环境,所以没法在vxworks上实验,但是我…

不好意思,代码有更正一下,循环次数不对。
#include

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 = (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;
}
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

8
 
FireAngel 你的理解是对的;
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

9
 
想问下 vxworks下支持FAT32吗?
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

10
 
我想问一个问题,
vxworks操作系统本身应该是不带文件系统的,
文件系统应该是可选组件吧?
请高手指点迷津。
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

11
 
路过 学习。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

12
 
引用 9 楼 ies_sweet 的回复:
我想问一个问题,
vxworks操作系统本身应该是不带文件系统的,
文件系统应该是可选组件吧?
请高手指点迷津。


文件系统本身也是OS的一个组成部分,不过我们在讨论操作系统特性的时候一般的确没有包括文件系统,这个是个人理解了,只是看问题的角度而已。对于vxworks这样的操作系统,文件系统是可选的,你可以不要文件系统的。我以前做过一个项目,就没有用文件系统,直接讲文件写在flash上。Tornado/workbench中可以配置。
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

13
 
谢过楼上指点。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

14
 
根目录下最多可以放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设备,这个是比较低级的操作。
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

15
 
引用 8 楼 cool_ice1020 的回复:
想问下 vxworks下支持FAT32吗?

vxworks本身带VFAT文件系统,支持长度为63字节的文件名,貌似也支持12、16和32位FAT表,还真不清楚是不是可以完全兼容FAT32. 有谁对这个比较清楚的来解惑?
 
 
 

回复

92

帖子

0

TA的资源

一粒金砂(初级)

16
 
可以支持fat32文件系统
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

17
 
引用 13 楼 ppzzhhsky 的回复:
根目录下最多可以放0xffff个目录
一般的系统都是放的512,只有个别系统不一样,但是怎么都不会超过0xffff个
关于fopend的参数w,w+, a, a+的问题:
1. w 以写方式打开文件,如果文件内容存在,那么内容会被首先清除掉
2. w+以读和写的方式打开文件,如果文件内容存在,那么内容会被首先清除掉

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


楼上的还是尊重一下别人的劳动,好不好?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表