CMake提供了几种指定目标源文件的方法.一种是使用globbing(文档),例如:
FILE(GLOB MY_SRCS dir/*)
Run Code Online (Sandbox Code Playgroud)
另一个是单独指定每个文件.
哪种方式更喜欢?Globbing似乎很容易,但我听说它有一些缺点.
我正在寻找在linux上进行异步文件I/O的最有效方法.
POSIX glibc实现使用userland中的线程.
本机aio内核api仅适用于无缓冲操作,内核补丁用于添加对缓冲操作的支持,但这些补丁已超过3年,似乎没有人关心将它们集成到主线中.
我发现了许多允许异步I/O的其他想法,概念和补丁,尽管其中大多数都是在3年以上的文章中.在今天的内核中真正可用的是什么呢?我已经阅读过有关servlet,acalls,内核线程的内容以及我现在甚至都不记得的更多内容.
在今天的内核中进行缓冲异步文件输入/输出的最有效方法是什么?
我搜索编译器存在的编程语言,并支持自修改代码.我听说Lisp支持这些功能,但我想知道是否有更多具有这些功能的C/C++/D-Like语言.
澄清我的意思:
我希望能够以某种方式在运行时访问程序代码并对其应用任何类型的更改,即删除命令,添加命令,更改它们.好像我有我的程序的AstTree.当然,我不能用编译语言拥有那棵树,所以它必须做得与众不同.编译需要将自修改命令转换为它们的二进制等效修改,以便它们在运行时与编译的代码一起工作.
我不想依赖于VM,这就是我的意思与编译:)
lisp reflection programming-languages compiled self-modifying
问候,
我想知道是否有一种方法可以将计时器与linux poll/epoll API结合使用.我已经使用了epoll,如果我可以让计时器成为队列中的另一个epoll事件,它将与现有代码集成得非常好.
可能的方法是,基于文件的Timer,就像
echo 400;now > /dev/timer ; cat /dev/timer ; # outputs after 400ms "now"
Run Code Online (Sandbox Code Playgroud)
就像一个想象的例子.有这样的事吗?或者还有其他方法可以将它与epoll API集成吗?
--Marenz
linux ×2
aio ×1
asynchronous ×1
cmake ×1
compiled ×1
epoll ×1
file ×1
io ×1
linux-kernel ×1
lisp ×1
reflection ×1
timer ×1