我有一个与Linux中的线程实现相关的查询.
Linux没有明确的线程支持.在用户空间中,我们可能使用线程库(如NPTL)来创建线程.现在,如果我们使用NPTL,它支持1:1映射.
内核将使用该clone()函数来实现线程.
假设我创建了4个线程.那意味着:
task_struct.task_struct,将根据克隆的参数提供共享资源(CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND).现在我有以下查询:
我需要一些关于这种奇怪行为的建议 - 让我们有这个代码:
int ** p;
Run Code Online (Sandbox Code Playgroud)
编译没有任何麻烦:
p++;
Run Code Online (Sandbox Code Playgroud)
但是这个:
((int**)p)++;
Run Code Online (Sandbox Code Playgroud)
给我这个错误信息:“error: lvalue required as increment operand”.
我正在转向p它已经存在的类型,没有任何改变,那么问题是什么?这是我遇到的问题的简化版本,当我试图编译一个旧版本的时候gdb.所以我想,这样做有所改变.知道第二个例子有什么问题吗?