makecontext 产生无效值?

makecontext producing void value?

我的问题与这一行有关:

    int f = makecontext( &threadList[ numThreads ].context

我的程序在没有赋值操作的情况下编译没有错误,但根本无法运行。该行似乎什么都不做。当我添加 "int f =" 时,编译器给我错误:

my_pthread.c:41:10: error: void value not ignored as it ought to be

我不明白这是怎么回事,因为 ucontext 应该总是 return 0 或 -1。

感谢任何帮助。

makecontext函数声明为:

void makecontext(ucontext_t *ucp, void (*func)(), int argc, ...);

它returns没有值,所以你不能将函数的结果赋值给任何东西。