Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
2年前关闭。
我目前正在执行level02上的Exploit-Exercises,在脚本中我看到了一个名为'asprintf',
请用简单的英语向我解释此功能的作用以及为什么存在该功能,我知道还有另一篇文章问同样的事情,但是对我没有太大帮助。 (是的,我阅读了手册页!)
请不要忽略或删除问题,这不是第一次(向主持人的消息)。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
2年前关闭。
我目前正在执行level02上的Exploit-Exercises,在脚本中我看到了一个名为'asprintf',
asprintf(&buffer, "/bin/echo %s is cool" , getenv("USER"));
buffer = null;的函数。在此函数调用之前。请用简单的英语向我解释此功能的作用以及为什么存在该功能,我知道还有另一篇文章问同样的事情,但是对我没有太大帮助。 (是的,我阅读了手册页!)
请不要忽略或删除问题,这不是第一次(向主持人的消息)。
最佳答案
我认为您提到的asprintf
函数是sprintf
的变体,特定于glibc标准库。该函数的第一个参数不是像sprintf
那样的字符数组的指针,而是指向char *
变量的指针,该变量将保存新分配的char
数组的地址。也就是说,asprintf
函数的作用与sprintf
相同,但它不是为固定大小的char
数组工作,而是为其生成的字符串分配空间。 asprintf
分配的数组必须在稍后的某个时刻由调用方释放。
关于c - C语言中的asprintf函数,它有什么作用? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47092770/
10-08 21:55