syscall(SYS_gettid)返回-1,errno设置为22(EINVAL)

时间:2016-01-28 22:09:46

标签: c++ system-calls errno

我们有一段C ++代码,以前工作正常,系统调用(SYS_gettid)会正确返回当前的线程ID。最近,我注意到返回值为-1。

我理解,如果操作失败,则syscall返回-1,并且在errno.h中的errno中设置了相应的错误。所以我尝试了以下内容来找出可能失败的内容。

errno = 0;
long jtid = syscall(SYS_gettid);
int errsv = errno;
stream<< "HERE1::" << jtid << "::" << errsv;

这已经回归了

HERE1::-1::22

由于22被定义为&#34; #define EINVAL 22 / *无效参数* / &#34;

有人可以帮我理解可能出错的地方吗?

0 个答案:

没有答案