#include #include #include #include // pthread_detach 的使用 void *task1(void *data) { // 提供一个整数值,计算它的阶乘 int n = *((int *)data); int *ret = (int *)malloc(sizeof(int)); *ret = 1; while (n) { *ret *= n--; } printf("%d\n", *ret); return NULL; } int main(int argc, char const *argv[]) { if (argc != 2) { printf("usage: ./%s 数字\n", argv[0]); } pthread_t tid; int num = atoi(argv[1]); pthread_create(&tid, NULL, task1, (void *)&num); // detach 分离的线程不能再由此程序处理,归由系统管理 pthread_detach(tid); sleep(0.5); return 0; }