我正在使用linux,我有一个目录,其中有子目录,子目录中有文件.我必须监视文件中的更改.在C++中我使用boost.我每隔30秒检查一次所有目录并查看last_write_time.原则上,它的工作原理.但每次执行此操作时,我的CPU都会疯狂,我看到15%-25%的CPU使用率仅适用于此程序.我读过关于inotify的文章.如果我使用inotify,我会有或多或少相同的CPU使用率,还是会改进?我正在做什么有什么好的选择吗?
我有一个CMakeList.txt文件,它include(startevn.cmake)
在startevn.cmake中只有一个
线程,我有,
project(startevn)
set(headers
startup.h
)
set(sources
system-init.cpp
)
new_library(startevn ${sources} ${headers})
Run Code Online (Sandbox Code Playgroud)
现在我必须将启动移动到另一个目录.在这之后我将以下行添加到"startevn.cmake",
include_directories("/new_folder_location/sub_folder")
Run Code Online (Sandbox Code Playgroud)
其中sub_folder是startup.h现在所在的位置,但编译器仍然说无法找到源文件:startup.h.我究竟做错了什么?
我正在尝试替换硬编码的预处理器
#define MY_FILE_PATH "/usr/local/myfile"
Run Code Online (Sandbox Code Playgroud)
在 cmake 中使用 add_definitions
add_definitions(-DMY_FILE_PATH=${MY_FILE_PATH})
Run Code Online (Sandbox Code Playgroud)
并且在调用 cmake 时,我使用-DMY_FILE_PATH=/usr/tmp/myfile
但得到所有类型的错误,例如,'/' 标记之前的预期主表达式和 tmp 未找到等。是否可以在我的场景中使用 add_definitions 或者我应该尝试 configure_file。add_definitions 是否仅支持整数值?
我有两个字节,我设置不同的位,以获得不同的组合.例如,字节1位7和字节2位1,位2使组合设备准备就绪.现在,我创造了面具
#define C1_device_ready (0x80 | 0x100 | 0x200)
Run Code Online (Sandbox Code Playgroud)
然后我读取数据并尝试比较.我可以做1个字节(data [0]&mask == mask).但是如何计算C1_device_ready掩码,其中有两个字节,data [0]和data [1].是否可以轻松实现,或者我应该仅在单字节中进行屏蔽.:: added :: data是unsigned char数据[2]