我已经包含了头文件。
使用这个函数。
使用这个函数。
bzero(&server, length);
但编译器报错:
错误:'bzero'在此范围中未声明
`
bzero(&server, length);
但编译器报错:
错误:'bzero'在此范围中未声明
`
bzero()
不是标准库的一部分,它属于POSIX。
现在它已经被弃用了(请注意手册中的LEGACY),所以考虑使用memset()
代替。
memset
应该是最后的选择。如果 server
不是一个数组,则 server = {};
是一个不错的选择。如果它是一个数组,则使用 fill( begin(server), end(server), T{} );
。 - M.M#define bzero(b,len) (memset((b), '\0', (len)), (void) 0)
<unistd.h>
,这对于同时使用bzero和read有用。unistd.h
是使用 bzero
的正确标头吗?这是否在标准中有规定? - bam你应该包含 <string.h>。
bzero
被声明?标准库中并没有要求包含这样的函数。 - BeyelerStudiosbzero
函数被包含在<strings.h>
而不是<stdio.h>
中。http://pubs.opengroup.org/onlinepubs/009695399/functions/bzero.html。无论如何,你不应该再使用这个函数了,因为它已经被弃用。最好使用memset
来代替它。 - Rndp13