sscanf是否修改传递给它的字符串?
我可以知道sscanf是否修改传递给它的字符串。或者有人能告诉我在哪里可以找到sscanf的源代码吗 我下载了glibc并发现以下内容:sscanf是否修改传递给它的字符串?,c,glibc,scanf,C,Glibc,Scanf,我可以知道sscanf是否修改传递给它的字符串。或者有人能告诉我在哪里可以找到sscanf的源代码吗 我下载了glibc并发现以下内容: extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) __THROW; extern int sscanf (__const char *__restrict __s, __co
extern int sscanf (__const char *__restrict __s,
__const char *__restrict __format, ...) __THROW;
extern int sscanf (__const char *__restrict __s,
__const char *__restrict __format, ...) __THROW;
sscanf
从不修改传递给它的字符串;您可以通过const
限定符来判断
您可以在其上找到
sscanf
的Glibc源代码。sscanf
从不修改传递给它的字符串;您可以通过const
限定符来判断
您可以在its上找到
sscanf
的Glibc源代码。有一些很好的C资源。对于glibc,应该是你的圣经。一般来说,通过谷歌搜索“mancommand”来查找特定命令的文档,通常可以很快找到所需的内容
更具体地说,对于sscanf()
,GNU C库手册明确指出
如果复制发生在以下对象之间,则此函数的行为未定义:
重叠,例如,如果s也作为参数提供,以接收在下读取的字符串
控制“%s”、““%s”或“%[”转换
因此,通常它不会做任何事情,但是如果你在你正在读取的字符串和你正在分配给它的变量之间做一些松鼠式的自引用,它将有未定义的行为。有一些很好的C资源。对于
glibc
,应该是你的圣经。一般来说,查找特定变量的文档c命令,谷歌搜索“男人命令”通常会很快得到你想要的东西
更具体地说,对于sscanf()
,GNU C库手册明确指出
如果复制发生在以下对象之间,则此函数的行为未定义:
重叠,例如,如果s也作为参数提供,以接收在下读取的字符串
控制“%s”、““%s”或“%[”转换
所以,通常它不会做任何事情,但是如果你在你正在读取的字符串和你正在分配给它的变量之间做一些松鼠式的自引用,它将有未定义的行为。非常感谢:)。我太愚蠢了,以至于没有观察到原型。谢谢你提供了我可以找到源代码的链接。@somasekhar-如果这是WER是正确的,你能考虑“接受它吗?欢呼!对不起,阿俊,上次我想接受的时候,它让我再等12分钟。”(谢谢):我太笨了,我没有观察到原型。谢谢我找到源代码的链接。@索马塞克-如果这个答案是正确的,请你考虑一下AC。接受它?干杯!对不起,阿琼,上次我试图接受时,它让我再等12分钟。:)