请在Linux利用c语言编程实现主次线程,当主线程从主键盘输入一个字符串后,从线程能打印出这个字符串的长度,并且当字符串为“exit”时退出次线程
时间: 2023-02-26 14:28:30 浏览: 149
下面是一份实现主次线程的示例代码:
```
#include <pthread.h>
#include <stdio.h>
#include <string.h>
void *thread_func(void *arg)
{
char *str = (char *)arg;
int len = strlen(str);
printf("字符串长度为:%d\n", len);
pthread_exit(NULL);
}
int main()
{
pthread_t thread;
char str[100];
while (1) {
printf("请输入一个字符串:");
scanf("%s", str);
if (strcmp(str, "exit") == 0) {
break;
}
int ret = pthread_create(&thread, NULL, thread_func, (void *)str);
if (ret != 0) {
printf("创建线程失败\n");
return -1;
}
pthread_join(thread, NULL);
}
return 0;
}
```
这段代码利用 `pthread_create` 函数创建一个新线程,执行 `thread_func` 函数。主线程在循环中等待用户输入字符串,每输入一个字符串就创建一个新线程来打印它的长度。如果字符串为 `"exit"`,则退出循环。
阅读全文