도움이 필요합니다. 나는 그것을 몇 시간 동안 해왔고 그것을 작동시킬 수 없었다. 일반적으로 커널 드라이버에 액세스하는 함수가 있는데이 함수를 매개 변수로 전달하여 일부 pthread 코드가 포함 된 다른 함수에 전달하려고합니다. 내가 조사하여 함수 포인터가 필요할 수도 있다는 것을 알았습니다.C 프로그램 : 함수를 다른 함수의 매개 변수로 전달하여 스레드를 생성하십시오.
다음은 매개 변수로 전달하려는 함수입니다. 여기
static void kernelTest(char Send[BUFFER_LENGTH])
{
int fd = open("/dev/kernelTest", O_RDWR);
}
내가에 전달할 수있는 기능입니다 :
static void createKThread(void (*f)(char *))
{
pthread_t t1;
int ret;
ret = pthread_create(&t1, NULL, (*f)(char), NULL);
pthread_join(t1, NULL);
}
내가 함수 포인터를 시도했지만 그것은 나에게 오류를주고있다.
error: expected expression before ‘char’
나는 도움을 크게 주심. 고맙습니다!
'는 pthread_create (T1을 , f, NULL);'올바른 것이지만 함수 포인터의 프로토 타입은'void * (*) (void *)'이어야합니다. – mch