recv()C错误从char到int的转换无效
我有一些C代码如下:recv()C错误从char到int的转换无效,c,linux,type-conversion,recv,C,Linux,Type Conversion,Recv,我有一些C代码如下: char update[MAX_UPDATE_LEN]; int remoteLen; char pholder; pholder = recv(update,connectDescriptor,MAX_UPDATE_LEN,MSG_DONTWAIT); //error remoteLen = atoi("pholder"); 我不断发现以下错误: client.cpp:849: error: invalid conversion from `char*' to `in
char update[MAX_UPDATE_LEN];
int remoteLen;
char pholder;
pholder = recv(update,connectDescriptor,MAX_UPDATE_LEN,MSG_DONTWAIT); //error
remoteLen = atoi("pholder");
我不断发现以下错误:
client.cpp:849: error: invalid conversion from `char*' to `int'
client.cpp:849: error: initializing argument 1 of `ssize_t recv(int, void*,
size_t, int)'
client.cpp:849: error: invalid conversion from `int' to `void*'
client.cpp:849: error: initializing argument 2 of `ssize_t recv(int, void*,
size_t, int)'
导致这些错误的原因是什么?此代码有几个问题:
char update[MAX_UPDATE_LEN];
int remoteLen;
char pholder;
pholder = recv(update,connectDescriptor,MAX_UPDATE_LEN,MSG_DONTWAIT); <-- error here
remoteLen = atoi("pholder");
在做了一些小的调整并使用了Atoi之后,我也开始工作了。谢谢如果您对答案满意,请将问题标记为“已回答”
char update[MAX_UPDATE_LEN];
const int flags = MSG_DONTWAIT;
const ssize_t ret = recv(connectDescriptor, update , sizeof(update), flags);
if (-1 == ret)
{
perror("recv");
exit(1);
}
const int remoteLen = strtol(update, update + sizeof(update), 0);