小编use*_*288的帖子

在linux内核模块中设置线程关联

因为大多数C程序员都知道libc为线程cpu亲和性调优提供了一个非可移植的函数(pthread_attr_setaffinity_np()).但是,我真正不知道的是在实现内核模块时如何做到这一点.任何提及或重定向到一些真实示例的答案都会非常有用.

kernel-module setthreadaffinitymask

5
推荐指数
1
解决办法
3420
查看次数

可以更改malloc返回的指针

在为个人项目编程时,我发现当我将指针传递给一个函数时,它的值无法更改.例:

...
GString *buf = NULL;
buf = g_string_sized_new(64);
somefunc(buf, filename);
...
Run Code Online (Sandbox Code Playgroud)

void somefunc(GString *buf, gchar *filename)
{
    buf = otherfunc(filename); //otherfunc() returns a GString *
}
Run Code Online (Sandbox Code Playgroud)

在观察调试器后我观察到当缓冲区内存分配运行时,则buf = 0x80b720和otherfunc()返回0x80b750.虽然缓冲区的值没有变化.所以我想问一下是否有人知道为什么会发生这种情况,以及这是否是malloc()的一般特征.换句话说,如果将malloc()调用返回的指针传递给函数,那么您是否可以在函数体内部或外部更改此值?

c malloc gstring

1
推荐指数
1
解决办法
215
查看次数