相关疑难解决方法(0)

gcc -D_FORTIFY_SOURCE = 1和-D_FORTIFY_SOURCE = 2之间的差异

有人能指出gcc -D_FORTIFY_SOURCE=1和之间的区别-D_FORTIFY_SOURCE=2吗?我想=2更安全吗?我找不到一个逐点列出差异的列表.

我还读过-D_FORTIFY_SOURCE=2应该使用的-O2,否则并非所有功能都可用.此外,我还没有找到一个列表,详细说明回归.我特别感兴趣的是编译-Os目标是一个没有那么多闪存的设备.

有关记录在哪里的任何提示欢迎!

security gcc glibc

60
推荐指数
2
解决办法
3万
查看次数

没有指定模式的Unix O_CREAT标志

与O_CREAT标志一起使用时,UNIX open()函数的定义是它需要第三个名为mode的参数才能设置文件的权限.

如果没有指定该模式怎么办?

int file;
static const char filename[] = "test.test";

if ((file = open(filename, O_RDWR | O_CREAT | O_TRUNC)) == 1)
{
    perror("Error opening file.");
    exit(EXIT_FAILURE);
}

close(file);
Run Code Online (Sandbox Code Playgroud)

使用这些标志创建的文件会发生什么?在我的系统上,我得到:

-r--r-s---  1 hyperboreean hyperboreean     0 2009-02-25 01:40 test.test
Run Code Online (Sandbox Code Playgroud)

理论上,open函数在堆栈上查找并检查mode参数,最后使用它找到的随机整数.

标准对此有何看法?

c unix

7
推荐指数
2
解决办法
6565
查看次数

标签 统计

c ×1

gcc ×1

glibc ×1

security ×1

unix ×1