我在 Jon Erickson 的书Hacking: The Art of Exploitation中找到了这个来源,
userid = getuid(); // get the real user ID
// Writing data
if(write(fd, &userid, 4) == -1) // write user ID before note data
fatal("in main() while writing userid to file");
write(fd, "\n", 1); // terminate line
我尝试编译这段代码,发现在我写的文件上,userid(就是我上面代码中写的)不对;他们只是写了奇怪的字符(我认为在这里写它并不重要)。所以问题是我试图将一个传递int
给一个需要的函数char *
,因为我想写的文件上的结果是错误的。
所以这是一个错误,对吧?