对于GCC和Linux的情况,
我想知道
如果C ++库依赖于C库API。
如果C库包含每个系统调用。
如果C ++库包含所有系统调用。
如果存在提供除C / C ++库以外的系统调用的任何系统库。 (我相信pthread库会产生一些posix线程API)
提前谢谢。
答案 0 :(得分:3)
如果C ++库依赖于C库API。
对于GNU C,是的。这样做可能是有益的,因为许多C标准库函数也是C ++标准的一部分。
如果C库包含每个系统调用。
它不包含“单个”,因为系统调用是内核公开的内容。 C库所做的是提供一些围绕系统调用的包装器,但不是,不一定围绕所有这些包装器。有调用系统调用的助手,没有提供包装器。也许在这里开始阅读:syscalls(2)
。
如果C ++库包含每个系统调用。
见上文。
如果存在提供除C / C ++库以外的系统调用的任何系统库。 (我相信pthread库会产生一些posix线程API)
是(在你的措辞中添加“包装”一词),你已经举了一个例子。请注意,POSIX线程API不需要内核级线程,但它是在Linux上使用它们实现的。
答案 1 :(得分:2)
是的,GNU C ++库与GNU C库链接。
SELECT distinct
mem.id as id,
mem.last_name as lname ,
mem.first_name as fname,
mem.birth_date as birthdate,
mem.phone_number as phone,
mem.mobile_number as mobile,
mem.email_address as email,
mem.co_address as co,
mem.street_address as street,
mem.postal_address as postal,
mem.country as country,
(SELECT
GROUP_CONCAT(m3.id)
FROM
members m3
WHERE
LOWER(REPLACE(mem.last_name, ' ', '')) = LOWER(REPLACE(m3.last_name, ' ', '')) AND
LOWER(REPLACE(mem.street_address, ' ', '')) = LOWER(REPLACE(m3.street_address, ' ', '')) AND
LOWER(REPLACE(mem.postal_address, ' ', '')) = LOWER(REPLACE(m3.postal_address, ' ', '')) AND
LOWER(REPLACE(mem.country, ' ', '')) = LOWER(REPLACE(m3.country, ' ', '')) AND
mem.id <> m3.id
AND m3.member_type = 1
) as lives_together
FROM
members mem
WHERE
member_type = 1
group by co_address,street_address,postal_address,country
ORDER BY
mem.last_name ASC,
mem.first_name ASC,
mem.birth_date DESC