часть моего кода:
int server_sockfd, client_sockfd; //socket file descriptors of client and server
// ... some code
if(pthread_create(&vlakno, NULL, handle_client, (int *) client_sockfd) != 0) {
perror("Error while creating thread.");
}
Я получаю "предупреждение: приведение к указателю из целого числа другого размера [-Wint-to-pointer-cast]"
прототип моей функции:
void *handle_client(void *args);
Я нашел этот вопрос:
ссылка
В первом ответе говорилось что-то вроде этого, он должен использовать intptr_t вместо int.
У меня два вопроса:
В чем разница между int и intptr_t в моем случае?
Что мне делать?
У меня есть 2 идеи:
1-е: (изменение типа файловых дескрипторов)
int server_sockfd, client_sockfd; //socket file descriptors of client and server
// ... some code
if(pthread_create(&vlakno, NULL, handle_client, (intptr_t *) client_sockfd) != 0) {
perror("Error while creating thread.");
}
или 2-я идея: (изменение типа только в функции приведения pthread_create)
intptr_t server_sockfd, client_sockfd; //socket file descriptors of client and server
// ... some code
if(pthread_create(&vlakno, NULL, handle_client, (int *) client_sockfd) != 0) {
perror("Error while creating thread.");
}
EDIT:
в функции handle_client я хочу сделать это:
int clientSocket;
clientSocket = (int)args;
Мне очень жаль пользователя cnicar или что-то в этом роде ... он, к сожалению, удалил свой ответ, но он был в порядке.
Его решение было использовать (void *), сначала он вызывал ту же ошибку, но это было вызвано, вероятно, плохим поведением затмения :(
Итак, сообщение для него:
Хорошо, спасибо, теперь все в порядке ... Eclipse по-прежнему выдает это предупреждение, но когда я дважды его включаю и выключаю, отредактирую его с помощью редактирования :) спасибо большое