Cygwinで動いた。
GNU Pthが一般的なのかな…libfiberもあったけど。
#include <stdio.h> #include <pth.h> void *handler(void *arg) { pth_t mth = (pth_t) arg; while (1) { puts("spring"); pth_yield(mth); puts("summer"); pth_yield(mth); puts("autumn"); pth_yield(mth); puts("winter"); pth_yield(mth); } return NULL; } int main() { pth_t mth, th; pth_init(); mth = pth_self(); th = pth_spawn(PTH_ATTR_DEFAULT, &handler, mth); while (1) { fgetc(stdin); pth_yield(th); } pth_kill(); return 0; }