【发布时间】:2016-09-29 08:17:49
【问题描述】:
如果您通过考虑最后一个参数“0”来查看下面的代码块,写行是否正常工作?
filename = argv[1];
string = "Example string";
if (stat(argv[1], &buf) != 0)
{
fd = open(filename, O_WRONLY | O_CREAT, 0);
if (fd < 0)
{
perror(filename);
exit(1);
}
write(fd, string, strlen(string));
close(fd);
}
else
{
print("%s file exists\n", filename);
}
【问题讨论】:
-
你自己试过了吗?
-
@greydet 不是尝试,而是行为是否被定义,我喜欢这个问题。
-
@iharob 那么问题不够明确。
-
最后一个参数
pmode应该是_S_IREAD或_S_IWRITE或(_S_IREAD | _S_IWRITE)。 -
@iharob 这当然是尝试理解行为的第一步,如果这正是你所说的 OP 所希望的。我本来会想到一个问题,例如:“我试过了,得到了 XY 作为输出,或者它失败了。这符合预期吗?”来自 OP。