是否可以在C中使用函数表达式?例如,我有以下代码片段(在main
函数内):
void print_line(char *data) {
printf("%s\n", data);
}
// print all elements in my_list
list_foreach(&my_list, print_line);
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情:
list_foreach(&my_list, void (char *data) {
printf("%s\n", data);
});
Run Code Online (Sandbox Code Playgroud)
C中有什么可能吗?
我想转储正在运行的进程的核心,根据/proc/<pid>/status
当前阻塞的磁盘活动.实际上,它正忙于在GPU上工作(应该是4个小时的工作,但现在已经花了很长时间).我想知道这个过程的工作有多少,所以能够转储进程的内存是件好事.但是,据我所知,"阻止磁盘活动"意味着无法以任何方式中断进程,并且使用gdb进行coredumping进程需要中断并暂时停止进程以便通过ptrace进行连接,对吧?
我知道我只能/proc/<pid>/{maps,mem}
以root身份读取以获得(可能不一致的)内存状态,但我不知道如何获取进程的用户空间CPU寄存器值...它们保持相同而进程在内核,对吗?
我在Rackspace中部署了一个nodejs服务器,可以在内部访问,如下所示:
curl http://127.0.0.1:8080
但是,即使我这样做,它也无法从外部(互联网)访问:
iptables -A OUTPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
这是我的代码的样子:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Simple server\n');
}).listen(8080, "0.0.0.0");
console.log('Server running at http://0.0.0.0:8080/');
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我想使用 Pango 呈现文本,但找不到不使用 Cairo 的示例代码。有人可以给我一个使用 FreeType 后端的 Pango 用法的简单示例吗?这就是我认为它应该大致工作的方式,但是正如您在代码中看到的那样,有些事情我还不明白。
// context and font stuff
PangoFontMap *fontmap = pango_ft2_font_map_new();
// do I have to initialize the fontmap?
PangoContext *context = pango_font_map_create_context(fontmap);
PangoFontDescription *desc = pango_font_description_new();
pango_font_description_set_style(desc, PANGO_STYLE_NORMAL); // not bold or italic
pango_font_description_set_size(desc, 12); // 12pt font
PangoFont *font = pango_context_load_font(context, desc);
// target bitmap
FT_Bitmap bitmap;
// how do I say how big the bitmap should be? write it into the struct?
FT_Bitmap_New(&bitmap);
// text
char *text = "Hello World"; …
Run Code Online (Sandbox Code Playgroud) 我目前正在构建一个非常简单的骨骼Web应用程序,它要求能够在浏览网页时复制图像,然后将其粘贴到我的页面上.
我知道这种类型的功能是可能的 - 因为我在写消息时将图像粘贴到gmail中,然后插入Tumblr(我相信他们使用TinyMCE作为编辑器).
经过长时间的搜索 - 我对可用解决方案的解释质量很差感到很难过.
这就是我收集的内容:
$(document).bind('paste', function(e){
console.log(e);
})
Run Code Online (Sandbox Code Playgroud)
检查事件对象时,似乎只有在有文本时才会包含数据(无论如何都在Chrome中).
我知道IE有一个clipboardData对象,可以访问剪贴板内容.
我也听说过使用Flash,Java Applet和HTML 5 Canvas的可能解决方案 - 但我还没有找到解释这些解决方案的优秀文章.
任何人都成功完成了这项工作,并建议最佳做法?
从技术上讲,当我们执行以下代码(recursive process.nexttick)时,CPU使用率将达到100%或接近.问题是想象我在一台带有一个CPU的机器上运行,并且还有另一个节点HTTP服务器工作的过程,它如何影响它?
该线程是否正在进行递归process.nexttick让HTTP服务器工作?
如果我们有两个递归process.nexttick的线程,他们都获得50%的份额?
由于我不知道任何一个核心的机器都无法尝试.而且由于我对线程之间CPU的时间共享的理解在这种情况下是有限的,我不应该如何尝试使用具有4核CPU的机器.
function interval(){
process.nextTick(function(){
someSmallSyncCode();
interval();
})
}
Run Code Online (Sandbox Code Playgroud)
谢谢
我想在linux上创建一个临时文件,同时确保文件在我的程序终止后消失,即使它被杀死或有人在错误的时刻执行硬重启.不tmpfile()
处理这一切对我?
我想为C预处理器添加一个小功能,但为此,我需要一个易于理解且易于修改的功能.具体来说,我正在寻找以下标准:
我已经找到了tcc,它包含一个预处理器并且相当小,但据我所知,缺乏关于如何实现预处理的良好文档.我应该试着了解tcc是如何做到的,还是更好地适应?
如果我尝试在Windows 7上的Cygwin下运行以下简单代码,
#include <stdio.h>
int main() {
int i1, i2, sums;
printf( "Enter first integer\n" );
scanf( "%d", &i1 );
printf( "Enter second integer\n" );
scanf( "%d", &i2 );
sums = i1 + i2;
printf( "Sum is %d\n", sums );
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它编译(通过gcc)没有问题,但是当我尝试执行它时,第一个语句("输入第一个整数")没有打印到终端,我必须输入两个连续的数字(例如3和4)在我得到之前
3
4
Enter first integer
Enter second integer
Sum is 7
Run Code Online (Sandbox Code Playgroud)
任何人都可以向我解释这里发生了什么.这在MinGW下非常有效.
我正在寻找一个GUI工具包,我可以在普通的C中使用,至少在Linux上工作,并且不会强迫我使用它自己的eventloop - 我想使用libev作为主循环并让它通知工具包库时X事件进入左右.
我还没有找到类似的东西 - 我真的需要修补工具包库以获得我想要的东西吗?