小编mou*_*mer的帖子

如何在C99多文件项目中声明内联函数?

我想在项目中定义一个内联函数,用c99编译.我该怎么做?当我在头文件中声明该函数并在.c文件中提供详细信息时,其他文件无法识别该定义.当我将显式函数放在头文件中时,我遇到了一个问题,因为使用它的所有.o文件都有定义的副本,因此链接器给我一个"多重定义"错误.

我想要做的是:

header.h
inline void func()
{
    do things...
}


lib1.c
#include "header.h"
...

lib2.c
#include "header.h"
Run Code Online (Sandbox Code Playgroud)

使用lib1.o和lib2.o的实用程序

c linker c99 inline-functions

25
推荐指数
2
解决办法
1万
查看次数

如何在cpp中定义volatile元素的映射

我想生成互斥元素的映射,这可能需要是volatile.我试图定义这种东西:

typedef std::map<int key, volatile long mutex> tMutexMap;
tMutexMap myMutexMap;
Run Code Online (Sandbox Code Playgroud)

然后使用简单的映射索引,例如:

myMutexMap[10]=0;
myMutexMap[23]=1;
Run Code Online (Sandbox Code Playgroud)

我正在使用gcc 4.1.2.gcc编译器不喜欢该代码.我收到一个错误

没有匹配函数来调用'std :: pair ....'"

我究竟做错了什么?

c++ volatile map

5
推荐指数
2
解决办法
1065
查看次数

我可以强制 C++ 库使用单线程吗?

我在 Linux 上使用专有的 C++ 库,通过 gcc 编译,它使用 pthreads(我必须在 gcc 上使用 -lpthreads 标志)。我有一个围绕它的包装器,并且我知道该库正在使用多个线程。

该库动态使用多个线程 - 当我调用它时,我可以看到 20 到 1 个线程之间的任何位置。但我不想使用任务集。(我正在运行其他进程,并且我希望系统管理核心)。

有没有办法强制我的可执行文件使用单线程?无论是在编译时还是在运行时。谢谢。

编辑:我可以使用任务集运行可执行文件,然后 cat /proc//status 给我:

状态:R(正在运行) Tgid:1623 Pid:1623 PPid:31002 TracerPid:0 Uid:500 500 500 500 Gid:100 100 100 100 Utrace:0 FDSize:256 组:100 VmPeak:346528 kB VmSize:345 956 kB VmLck:0 kB VmHWM:199816 kB VmRSS:188388 kB VmData:192120 kB VmStk:128 kB VmExe:656 kB VmLib:12444 kB VmPTE:432 kB VmSwap:0 kB 线程:1 SigQ:2/62004 SigPnd:00 00000000000000 ShdPnd:0000000000000000 SigBlk:0000000000000000 SigIgn:0000000000000004 SigCgt:0000000180000000 CapInh:0000000000000000 CapPrm:0000000000000000 CapEff:0000000000000000 CapBnd:ffffffffffffffff CPU _allowed: 02 CPU_allowed_list: …

c++ gcc pthreads single-threaded

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

linux C++ 通知文件类型创建

我需要在 linux 的特定文件夹中监视特定文件类型(具有已知扩展名)的创建。我知道 inotify 只会监视现有文件。我理解正确吗?

是否有替代 inotify(或类似包)的方法可以让我按文件类型监视文件创建?

编辑:我需要的是通过掩码监视文件创建。我需要监视 *.json 的路径,而忽略其他文件类型。

c c++ linux inotify

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

标签 统计

c++ ×3

c ×2

c99 ×1

gcc ×1

inline-functions ×1

inotify ×1

linker ×1

linux ×1

map ×1

pthreads ×1

single-threaded ×1

volatile ×1