Questions tagged «c»

C是用于操作系统,游戏和其他高性能工作的通用计算机编程语言,与C ++明显不同。它由Dennis Ritchie于1972年开发,用于Unix操作系统。

2
如何调试出现NULL指针的内核模块?
我有一个自定义内核模块,该模块是从此补丁编译而成的,该模块logitech G19在其他G系列设备中增加了对键盘的支持。我对Ubuntu特立独行的内核的master分支(2.6.35)进行了很好的编译。 我可以引导和加载模块,但是我遇到了一个非常奇怪的情况。一旦加载模块(无论是在启动时还是通过modprobe),我都会出现黑屏,并且控制台锁定。 奇怪的是它不会锁定我的系统,而只是当前的控制台会话。我可以通过SSH进入自己的机器,它为我提供了一个终端和一个会话。我可以键入,甚至可以运行命令,它会给我输出。然后,它将绘制我的下一个提示,并立即将其锁定。 我看到dmesg其中存在一个空指针,并且得到以下堆栈跟踪: [ 956.215836] input: Logitech G19 Gaming Keyboard as /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2.1/1-2.1.2/1-2.1.2:1.1/input/input5 [ 956.216023] hid-g19 0003:046D:C229.0004: input,hiddev97,hidraw3: USB HID v1.11 Keypad [Logitech G19 Gaming Keyboard] on usb-0000:00:1d.7-2.1.2/input1 [ 956.216065] input: Logitech G19 as /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2.1/1-2.1.2/1-2.1.2:1.1/input/input6 [ 956.216128] Registered led device: g19_97:orange:m1 [ 956.216146] Registered led device: g19_97:orange:m2 [ 956.216178] …

4
退出外壳程序后,chdir(<directory>)不会更改目录
我想制作一个简单的C程序来更改我的项目目录。其内容如下: #include &lt;unistd.h&gt; int main() { chdir("/home/enedil/projects/algo"); return 0; } 我用以下命令编译了它(pro.c是它的文件名): gcc pro.c -o /usr/local/bin/pro 没有错误也没有警告。但是,当我运行它,它并不会改变目录。为什么?
8 process  c  cd-command 

3
除了“默认”外,我还必须在snd_pcm_open中提供什么设备名称
我想同时录制2个设备的声音: 内部麦克风 外部USB网络摄像头麦克风 使用pulseaudio声音控制器,我将这些设备中的任何一个设置为默认设备,并可以使用录制声音snd_pcm_open(&amp;handle, "default", SND_PCM_STREAM_CAPTURE, 0)。 但是现在我想同时录制两个设备的声音,所以我必须选择这里提到的命名方案。但是,我没有成功。 我以为这可以解决我的问题,但front:CARD=U0x46d0x825,DEV=0作为设备的名称并没有帮助。 我得到这些错误: ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM ALSA lib pcm_hw.c:1667:(_snd_pcm_hw_open) Invalid value for card arecord -l 给我: # arecord -l **** List of CAPTURE Hardware Devices **** Home directory not accessible: Permission denied card 0: PCH [HDA …
8 c  alsa 

1
静态和动态链接对起始地址的影响
我有一个简单的C程序。我跑: $ gcc Q1.c -Wall -save-temps -o Q1 然后,我检查生成的可执行文件: $ objdump -f Q1 Q1: file format elf32-i386 architecture: i386, flags 0x00000112: EXEC_P, HAS_SYMS, D_PAGED start address 0x080483b0 然后我用静态链接编译它: $ gcc Q1.c -Wall -save-temps -static -o Q1 并再次检查文件: $ objdump -f Q1 Q1: file format elf32-i386 architecture: i386, flags 0x00000112: EXEC_P, …

1
free()是否取消映射进程的内存?
我正在Linux 2.6.16内核上运行C程序。我认为程序中没有内存泄漏,但是经过某些操作,程序的内存消耗保持稳定,并且不会减少。我使用“ ps v”命令监视程序的RSS值。 valgrind massif工具显示在我的进程中mmap分配了很大一部分堆。但是根据代码,这些分配应该在操作完成后释放。是否因为释放的内存仍被映射和/或仍对进程的RSS值起作用? 任何见解将不胜感激! 以下是valgrind massif报告中的片段。注意,我已经为massif工具打开了--pages-as-heap选项,以测量程序使用的所有内存。 -------------------------------------------------------------------------------- n time(i) total(B) useful-heap(B) extra-heap(B) stacks(B) -------------------------------------------------------------------------------- 85 701,483,989,262 173,576,192 173,576,192 0 0 86 704,352,949,469 173,367,296 173,367,296 0 0 87 707,582,275,643 173,367,296 173,367,296 0 0 88 710,536,145,814 173,367,296 173,367,296 0 0 100.00% (173,367,296B) (page allocation syscalls) mmap/mremap/brk, --alloc-fns, etc. -&gt;53.40% …
8 linux  memory  c 

1
什么是syscall-template.S?
我碰到了一个文件,syscall-template.S更具体地说,它的位置是 .../sysdeps/unix/syscall-template.S 这是什么文件 它在哪里。它不在我的系统上,我无法在包括linux-image和的源代码包中找到它glibc。
8 kernel  c  glibc 

2
如何获得静态C编译器?
我正在使用chroot环境,我想拥有一个可移植的C编译器,这样我就可以轻松地在每个环境中设置一些基本的构建工具,而不必在周围移动太多的库。 Gcc对于我想做的事情似乎很肿,但是如果构建静态gcc相当容易,那么我就不会介意几十兆字节。 我也在看Tiny C编译器,它虽然较小,但看起来仍然具有令人印象深刻的功能集。但是,在源目录中运行./configure --help不会列出静态构建tcc的任何选项,而且我不确定该如何完成。

2
从C程序获取CPU利用率统计信息
我想从C程序中读取CPU使用率统计信息,我对CPU使用率,窃取时间等感兴趣。这些统计信息显示在top命令的第三行中。 我试图top用awk(top -n 1 -b | awk '{print $0}')解析输出,但似乎top在开始显示正确的统计信息之前,总是给出相同的“虚构”值。 有没有办法通过代码或通过解析某些命令的输出来获取CPU利用率统计信息? 编辑: 该平台是Linux 谢谢。
8 monitoring  cpu  c  top 

2
Linux中的“ sys / ioctl.h”标头
我在 Linux 2.6.32-26-generic 当我查看“ ioctl.h”听众文件的linux源代码时,我可以看到许多变体。(对于不同的平台,我想)。即 ./fs/ocfs2/ioctl.h ./fs/btrfs/ioctl.h ./fs/ceph/ioctl.h ./include/config/i2o/config/old/ioctl.h ./include/asm-generic/ioctl.h ./include/linux/hdlc/ioctl.h ./include/linux/ioctl.h ./drivers/video/via/ioctl.h ./drivers/staging/vt6655/ioctl.h ./drivers/staging/vt6656/ioctl.h ./arch/ia64/include/asm/ioctl.h ./arch/h8300/include/asm/ioctl.h ./arch/microblaze/include/asm/ioctl.h ./arch/score/include/asm/ioctl.h ./arch/avr32/include/asm/ioctl.h ./arch/alpha/include/asm/ioctl.h ./arch/x86/include/asm/ioctl.h ./arch/m32r/include/asm/ioctl.h ./arch/mn10300/include/asm/ioctl.h ./arch/sparc/include/asm/ioctl.h ./arch/powerpc/include/asm/ioctl.h ./arch/m68k/include/asm/ioctl.h ./arch/sh/include/asm/ioctl.h ./arch/xtensa/include/asm/ioctl.h ./arch/mips/include/asm/ioctl.h ./arch/s390/include/asm/ioctl.h ./arch/arm/include/asm/ioctl.h ./arch/blackfin/include/asm/ioctl.h ./arch/frv/include/asm/ioctl.h ./arch/parisc/include/asm/ioctl.h ./arch/cris/include/asm/ioctl.h 但我看到该文件被包含为 #include &lt;sys/ioctl.h&gt; 此映射如何工作?
8 linux  c  header-file 

1
即使包含glib,对glib组件的未定义引用错误
刚在经过翻新的机器(2GB内存,2GHz双核)上以Xubuntu 14.04入手,并且对c具有粗略的/读过的知识,但不是ac程序员。 我正在尝试编译在这里找到的代码,以便为在工作空间之间移动的行为创建可视通知。编码: // wschanged.c #include &lt;libwnck/libwnck.h&gt; #include &lt;stdlib.h&gt; static void on_active_workspace_changed (WnckScreen *screen, WnckWorkspace *space, gpointer data) { // Executes a script on workspace change system ("~/.workspace-changed"); } int main(int argc, char ** argv) { GMainLoop *loop; WnckScreen *screen; glib:gdk_init (&amp;argc, &amp;argv); loop = g_main_loop_new (NULL, FALSE); screen = …

1
流程停止的原因?
我正在使用批处理文件运行程序,并且该程序不断出现此错误: 停止的过程 我注意到该程序每次都在他上次执行它停止的地方之后的某个地方停止 现在,我正在寻找“已停止”流程的原因,否则,如果有人遇到相同的问题,它将变得更好! 谢谢。

1
Bash并行进程是否已关闭系统?
我有一台远程控制服务器,可用来自动执行命令/脚本等到串联的所有节点。为了提高性能和速度,我想并行运行它。我大约在180个节点中执行命令。在系列赛中,我大约需要2个小时才能完成所有任务的执行。所以我目前正在寻找速度。伪代码如下所示,我使用based64将命令发送到其他节点。我可以使用它执行任何任意复杂的命令。 for host in ${sshconfig[@]}; do ssh "$host" "echo $COMMAND | base64 -d | bash" &amp; done 但是我忘了有很多节点,所以我犯了一个错误,所以我的bash脚本为每个节点创建了许多进程,结果,控制服务器的系统崩溃了,它已经关闭。现在,我无法再连接到它了。 我想知道,如何在bash脚本中分配内存?简便的操作ssh使bash非常适合我的情况,但是我想知道如何通过并行执行bash来提高性能,而又不必担心系统崩溃等问题。
bash  ubuntu  ssh  memory  c 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.