我的任務是對打印服務器執行精簡的多線程模型。將文件描述符傳遞給線程並在函數中使用(作業)
功能get_server的原型爲:
void *get_request(void *arg);
「參數arg指向從那裏請求是要讀取一個打開的文件描述符。」所以在測試時建議使用STDIN_FILENO,但是當所有內容完成時描述符都必須是通用的。
pthread_create(&tid, &attr, get_request, STDIN_FILENO);
函數裏面我試圖使用arg,並且無法將它從void *更改爲任何可用的東西。比如這一切都不工作:
read(*arg, intvariable, sizeof(int)); // can't cast void * error
int fd = *arg; // can't cast void * error
int fd = *(int *)arg; // seg fault
int fd = *((int *)arg); // seg fault
int fd = atoi(arg); // seg fault
// yes I'm aware arg isn't a char* but that's
// from the example code we were given
主題在作業說明中提到。再次感謝。 –