假设您给出一个C source file
包含最大值的单个.300行代码.
假设文件在实现多个函数时,其中不包含字符"#"(意思是#include
,没有任何统计信息,也没有其他语句中包含"#"的语句).
我的问题是,上述保证文件不进行任何I/O吗?它能保证文件不能(比方说)擦除硬盘内容,或做其他可疑的东西吗?
(我应该得到100-200个单个C
文件,(如上所述)不包含其中的字符#
.我被要求编写一个简单的程序,它将以编程方式检查一个C source file
没有#
可能涉及I/O 的单个文件,访问网络等).
鉴于#
不允许使用任何语句- 编码器可以在这样的C
文件中包含什么是最糟糕的代码,可能会损坏运行它的人的系统?
我知道没有检查会产生100%的准确性 - 但至少有兴趣做一些基本的检查,如果找到一些表达式/关键字会引发一个红旗.有什么想法的想法?
Shi*_*zou 12
不,它不能保证.你可以生成扩展所有包含和宏的代码,你可以把它变成一个巨大的文件,然后编译它...那个文件,不会包含任何预处理器指令,虽然它可以做任何事情,通常C可以做在一个系统上.
可以将标准文件类型和函数(例如FILE,fopen(),fprintf(),flocse())的定义复制并粘贴到C文件中.这样就不需要包含了,当文件被编译并链接到适当的库时,它将能够执行I/O.
归档时间: |
|
查看次数: |
332 次 |
最近记录: |