Глядя на вывод readelf -s /lib/x86_64-linux-gnu/libc.so.6
на моем компьютере с Ubuntu 22.04, я вижу (что выглядит так) весь API-интерфейс pthread, содержащийся в разделе .text
.
В качестве проверки работоспособности я успешно скомпилировал и запустил
#include <stdio.h>
#include <string.h>
#include <pthread.h>
static void *
func(void *args) {
return args;
}
int main() {
int ret;
pthread_t thread;
ret = pthread_create(&thread, NULL, func, NULL);
if ( ret != 0 ) {
fprintf(stderr, "pthread_create: %s\n", strerror(ret));
return ret;
}
pthread_join(thread, NULL);
return 0;
}
без использования -pthread
.
Учитывая все это, есть ли какая-либо цель для libpthread на моем компьютере, кроме поддержки старых приложений, которые ожидают, что она будет там?
🤔 А знаете ли вы, что...
C позволяет определять и использовать макросы для автоматизации задачи исходного кода.
Нужен ли libpthread, если API pthread находится в libc
Нет.
Есть ли какая-либо цель для libpthread на моем компьютере, кроме поддержки старых приложений, которые ожидают, что она будет там?
Нет.
См. https://developers.redhat.com/articles/2021/12/17/why-glibc-234-removed-libpthread. С тех пор libpthread — это пустая библиотека.