失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > c语言读取acc文件的采样率 C语言文件操作:打开检查文件指针访问模式

c语言读取acc文件的采样率 C语言文件操作:打开检查文件指针访问模式

时间:2021-09-20 20:54:17

相关推荐

c语言读取acc文件的采样率 C语言文件操作:打开检查文件指针访问模式

如何检查已打开的文件指针的访问模式?

所以说一个函数传递一个已经打开的文件指针:

//Pseudo code

bool PseudoFunction(FILE *Ptr)

{

if(... Insert check for read-only access rights)

{

//It's read only access mode

return true;

}

//File pointer is not read-only and thus write operations are permitted

return false;

}

我会在使用if语句来检查文件指针什么作为已经以只读方式打开(或不作为的情况下可能),而不写入文件,也不依赖于用户传递(可能矛盾)的参数?

系统是windows,code :: blocks编译器,但是为了代码的可移植性,交叉兼容性是首选。

请注意,这不是询问文件权限,而是FILE指针使用了什么访问模式。

自答 [无法单独回答追加由于用户权限的限制]:

有由另外的海报一个更好的答案下面,其中包括适当的#define

正如前面建议,看起来FILE指针的_flag(在_iobuf下定义)是了解文件是否只读的关键。您的里程可能虽然有所不同,但相同的基本概念应该是很容易适应,例如代码:

#define READ_ONLY_FLAG 1

bool PrintFlagPtr(const char FileName[], const char AccessMode[])

{

FILE *Ptr = NULL;

Ptr = fopen(FileName,AccessMode);

printf("%s: %d ",AccessMode,Ptr->_flag);

int IsReadOnly = Ptr->_flag;

fclose(Ptr);

Ptr = NULL;

if((IsReadOnly&READ_ONLY_FLAG) == READ_ONLY_FLAG)

{

printf("File is read only!\n");

return true;

}

printf("\n");

return false;

}

也就是说,当所有的不同的访问模式的组合与上述功能使用时,产生的输出:

Output:

w: 2

r: 1 File is read only!

a: 2

wb: 2

rb: 1 File is read only!

ab: 2

w+: 128

r+: 128

a+: 128

w+b: 128

r+b: 128

a+b: 128

我很好奇,为什么这是从来没有建议(或从未使用),给定一个交叉兼容的前端功能(简单地说是一个名称相同的函数,声明依赖于平台)传递一个const int来源于因为FILE指针_flag将是相当简单和容易解决问题的解决方案。

-08-11

SSight3

+0

避免使用oracle来发现程序中已知的内容。一些代码创建了FILE,该代码也知道它是如何创建的。给你的函数添加一个参数。 –

+0

事实上,依靠用户告诉我们一个文件具有什么样的访问权限是不好的形式(如上所述),因为这是一个安全漏洞。这是编程,而不是预测 - 部分代码已经知道访问权限是为了在使用putc和类似命令时能够出错。 –

+0

不知道为什么你认为用户与此有任何关系。它需要C程序员将参数传递给函数。如果你不相信程序员,那么所有的投注都关闭。 –

如果觉得《c语言读取acc文件的采样率 C语言文件操作:打开检查文件指针访问模式》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。