Articles of c + +

错误编译:linux / module.h:没有这样的文件或目录

我写了一个简单的模块: #define __KERNEL__ #define MODULE #include <linux/kernel.h> #include <linux/module.h> int init_module(void) { printk("Hello, world\n"); return 0; } void cleanup_module(void) { printk("Goodbye\n"); } 并用这个命令编译它: cc -c hello.c 但我得到这个错误: linux/module.h: No such file or directory 有什么build议么? 编辑:我用这个commad: cc -I/usr/src/linux-headers-3.0.0-17-generic/include -c hello.c 它前进了一步,现在我得到这个错误: In file included from /usr/src/linux-headers-3.0.0-17-generic/include/linux/kernel.h:13:0, from hello.c:3: /usr/src/linux-headers-3.0.0-17-generic/include/linux/linkage.h:5:25: fatal error: asm/linkage.h: No such file or […]

哪个Linux发行版最适合在虚拟机中开发Mono应用程序?

我一直是Windows用户,现在我需要Linux来使用Mono创build一个应用程序。 哪种Linux发行版最适合我? 我将在虚拟机中使用它。

从文件系统中“读短”,什么时候可以发生?

显然,read(2)系统调用通常可以返回比要求读取的字节更less的字节。 然而,很多程序假设在使用本地文件时,读取(2)永远不会返回比所要求的更less的内容(当然,除非文件更短)。 所以,我的问题是:在Linux上,在哪些情况下可以读取(2)返回小于从打开的文件中读取并且没有遇到EOF并且读取的数量最多只有几千字节时请求的内容? 有些猜测: 可以接收到的信号中断一个这样的读取,但不会使其失败? 不同的文件系统会影响这种行为吗? jffs2有什么特别的吗?

为什么我在这里得到一个SIGABRT?

我有这个代码段,我打开/closures一个文件多次(在一个循环中): for(i=1;i<max;i++) { /* other code */ plot_file=fopen("all_fitness.out","w"); for (j=0;j<pop_size;j++) fprintf(plot_file, "%lf %lf\n",oldpop[i].xreal[0],oldpop[i].obj); fclose(plot_file); /*other code*/ } 我在这里得到一个SIGABRT,跟踪如下: #0 0x001fc422 in __kernel_vsyscall () #1 0x002274d1 in *__GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 #2 0x0022a932 in *__GI_abort () at abort.c:92 #3 0x0025dee5 in __libc_message (do_abort=2, fmt=0x321578 "*** glibc detected *** %s: %s: 0x%s ***\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:189 #4 0x00267ff1 […]

在Linux中使用signal.h编译错误

我正在编写一个必须处理信号的shell程序。 我的相关信号处理相关代码如下: #include <signal.h> … #include <sys/types.h> … void installSigactions( int, struct sigaction* ); void handler_function( int signal_id ); … /*define signal table*/ struct sigaction signal_action; /*insert handler function*/ signal_action.sa_handler = handler_function; /*init the flags field*/ signal_action.sa_flags = 0; /*are no masked interrupts*/ sigemptyset( &signal_action.sa_mask ); /*install the signal_actions*/ sigaction( SIGINT, &signal_action, NULL ); 编译给了我以下的警告和错误: […]

关于Cygwin的一些问题(套接字,线程,其他编程和shell问题)

我有一些关于cygwin的问题: 我可以使用Cygwin开发基于套接字的代码吗? Cygwin是否具有与文件描述符一起工作的read()和write()函数? 我可以在Cygwin中使用Pthread库吗? 在Cygwin中编译的代码是否也可以在Linux中进行编译而没有任何改变或者几乎没有变化? Cygwin生成的可执行文件会在Linux中运行吗? 为什么Cygwin在使用pthread库时不需要链接器选项-lpthread ? 为什么在#include <iostream>不需要using namespace std; ? 我可以在Cygwin中使用QT吗? 如果是这样,怎么样? 我可以在其他地方启动我的Linux吗? 用Cygwin分区并使用它? 我可以访问Cygwin中EXT3的其他分区吗?

什么是“高度非自愿的背景”开关意味着什么?

我用 C语言重写了一部分代码。使用getrusage(2) C APItesting资源使用情况。 在更改代码之前: user time (ms): 21503 system time (ms): 372 involuntary context switches: 20 改变之后: user time (ms): 25589 system time (ms): 80732 involuntary context switches: 821 我看到很多involuntary context switches都是在我重写的代码中完成的。 我的问题不是关于如何减less上下文切换。 但.. 当“非自愿的上下文切换”更多时会发生什么? 它会以什么方式影响系统? PS:没有任何东西正在写入磁盘上没有活动。 它只是多次ping服务器。 更新: 增加了系统和用户的时间。 程序是multithreading的。 两种情况下都会产生相同数量的线程(3k线程)。 只有C中的底层API正在被重写。

valgrind – 地址 – 在大小为8的块被分配后的0字节

首先,我知道有类似的问题。 但是,我想用真正原始的C数据types有一个更普遍的简单问题。 所以在这里。 在main.c我调用一个函数来填充这些string: int main (int argc, char *argv[]){ char *host = NULL ; char *database ; char *collection_name; char *filename = ""; char *fields = NULL; char *query = NULL; … get_options(argc, argv, &host, &database, &collection_name, &filename, &fields, &query, &aggregation); 里面的get_options : if (*filename == NULL ) { *filename = (char*)realloc(*filename, strlen(*collection_name)*sizeof(char)+4); strcpy(*filename, […]

C的相当于windows的QueryPerformanceCounter

在linux中有没有一个等价的C函数来读取CPU计数器及其频率? 我正在寻找类似于QueryPerformanceCounter函数的东西来读取现代CPU中的64位计数器

使用可加载的内核模块修改framebuffer(/ dev / graphics / fb0)参数

问题:我必须configurationAndroid平台使用的各种LCD显示器。 几乎在所有情况下都没有关于液晶显示器的免费电气规格。 但是通过经验和逆向工程,参数可以被合理地猜测出来。 我正在尝试使用可加载的内核模块来微调显示参数(任何其他build议也欢迎)。 请在下面find相关信息。 硬件:爱特梅尔SAMA5D31-EK(ARM 5处理器) SW: Andriod Linux(目标),Ubuntu(主机系统),Sourcery CodeBench(交叉编译器)代码片段,从board-dt.c文件 static struct fb_videomode at91_tft_vga_modes[] = { ….. .xres =435; .yres =235; …. } static struct fb_monspecs at91fb_default_monspecs = { ……… .modedb = at91_tft_vga_modes, …… } static struct atmel_lcd_fb_info __initdata ek_lcdc_data = { ………. .default_monspecs = & at91fb_default_monspecs; ……… } 我添加了这个代码,所以可加载的内核模块可以访问lcdc_data结构 extern void set_fb_video(struct fb_videomode […]