c-以下strncpy调用的解释



我目前正在读一本书(Linux套接字编程-BY EXAMPLE(,在第45页上,作者使用了strncpy的奇怪用法(调用(,我不明白为什么它也能工作:

strncpy(  adr_unix.sun_path,
pth_unix,
sizeof( adr_unix.sun_path ) - 1 ) [sizeof adr_unix.sun_path - 1] = 0;

我原以为它应该是这样的:

strncpy(    adr_unix.sun_path,
pth_unix,
sizeof( adr_unix.sun_path ) - 1 );
adr_unix.sun_path[sizeof adr_unix.sun_path - 1] = 0;

strncpy的第三个参数中使用了什么样的代码?:

sizeof( adr_unix.sun_path - 1 ) ) [sizeof adr_unix.sun_path - 1] = 0;

注意strncpy调用在此处终止

strncpy(adr_unix.sun_path,
pth_unix,
sizeof( adr_unix.sun_path ) - 1 )

因此,因为strncpy返回调用它的目的地(adr_unix.sun_path(,所以它相当于您的

strncpy(    adr_unix.sun_path,
pth_unix,
sizeof( adr_unix.sun_path ) - 1 );
adr_unix.sun_path[sizeof adr_unix.sun_path - 1] = 0;

CCD_ 6调用的第三个自变量仅为CCD_ 7

相关内容

  • 没有找到相关文章

最新更新