我们有一段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;
有人可以帮我理解可能出错的地方吗?