getchar()
是一個C語言庫函數,用于從標準輸入(通常是鍵盤)讀取一個字符
在Linux多線程編程中,你可以在一個單獨的線程里使用 getchar()
,以便在其他線程執行任務時接收用戶輸入。這種方法可以讓你的程序在執行復雜任務時保持對用戶輸入的響應。
下面是一個簡單的示例,展示了如何在Linux多線程編程中使用 getchar()
:
#include<stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>
void* input_thread(void *arg) {
char c;
printf("Press 'q' to quit\n");
while ((c = getchar()) != 'q') {
printf("You pressed: %c\n", c);
}
return NULL;
}
void* worker_thread(void *arg) {
int i;
for (i = 0; i < 5; i++) {
printf("Worker thread: Doing some work...\n");
sleep(1);
}
return NULL;
}
int main() {
pthread_t input_tid, worker_tid;
// 創建輸入線程
if (pthread_create(&input_tid, NULL, input_thread, NULL) != 0) {
perror("Failed to create input thread");
exit(1);
}
// 創建工作線程
if (pthread_create(&worker_tid, NULL, worker_thread, NULL) != 0) {
perror("Failed to create worker thread");
exit(1);
}
// 等待線程結束
pthread_join(input_tid, NULL);
pthread_join(worker_tid, NULL);
printf("All threads finished.\n");
return 0;
}
在這個示例中,我們創建了兩個線程:一個用于接收用戶輸入,另一個用于執行一些模擬工作。當用戶按下 ‘q’ 鍵時,程序將退出。