std::cin.getline(buffer, strlen(buffer));
В определенной ситуациине получится?
#include <stdio.h>
#include <unistd.h>
#include <pthread.h>
void *worker(void *data)
{
char buf[128];
while(fgets(buf, sizeof(buf), stdin))
{
puts(buf);
}
}
int main(int argc, char **argv)
{
pthread_t t;
pthread_create(&t, NULL, worker, NULL);
sleep(3);
pthread_cancel(t);
pthread_join(t, NULL);
return 0;
}