标签: c

如何在 UNIX 系统上播放 PCM 文件?

我试图弄清楚如何将libmad与 C一起使用。问题是,libmad 将音频文件转换为 .pcm 文件,但我找不到播放这些文件的方法。没有简单的 .pcm 播放器,每次我尝试用它打开 pcm 文件时,Audacity 都会崩溃。有人对这个有经验么?我愿意将这些 pcm 文件转换为 wav 文件或其他一些格式,但同样没有直接的方法来做到这一点(至少我还没有找到)。

audio mp3 c pcm

5
推荐指数
1
解决办法
9148
查看次数

Linux上如何做硬件DTR/DSR流控(串口编程)?

可以使用带有 RTS/CTS 引脚(tcsetattr 的 CRTSCTS 标志)的硬件流控制来设置串行端口通信,但无法以可靠和有效的方式使用 DTR/DSR 引脚进行流控制。

可以使用 TIOCMGET ioctl() 来检查引脚状态,但是我们需要一次发送一个字节,这使得它非常慢!

没有更好的办法吗?制作我们自己的电缆无法扩展,市场上有许多仅使用 DTR/DSR 流量控制的 POS 串行打印机。

PS-忘记 XON/XOFF,我需要可靠的 8 位通信。

linux serial-port c

5
推荐指数
1
解决办法
6918
查看次数

Kernel hacking 方法 - 如何找出在哪里可以破解 linux 内核

我有一台想摆弄的一次性廉价笔记本电脑,Thinkpad SL 500。

困扰我的是两个 LED,一个用于无线连接,一个用于休眠,它们根本不亮,尽管它们可以正常工作,但我已在 Windows 上尝试过。

所以我想为他们编写一个内核驱动程序,没什么大不了的,只是玩弄内核看起来是个好主意。

我的问题是我应该系统地遵循什么方法来找出哪些设备负责这些 LED(一般来说,不一定特定于我的硬件),以及哪些驱动程序负责其他两个 LED 工作,蓝牙和电池指示灯?

当我说方法论时,我真正的意思是方法论,一步一步,每一步都有原因,就像我在这里给其他人的答案一样:&&在 void *p = &&abc; 中是什么意思;

我精通使用静态代码分析器和 co 对大型代码存储库进行 fgrepping,但我认为我缺乏硬件知识阻碍了我解决这个问题。

PS:我使用的是 ArchLinux,所以几乎是最新的内核版本。

linux drivers c linux-kernel

5
推荐指数
1
解决办法
572
查看次数

在 Linux 上获取物理网卡的 Mac 地址

我正在尝试获取 Linux 机器的 MAC 地址。我只想要物理网卡,而不是虚拟网卡。我一直在进行一些搜索,也许我没有输入正确的术语来在谷歌上找到一些东西。我知道 ifconfig -a 可以显示有关 NIC 的信息,但目前我没有找到区分物理与虚拟的方法。另外,我最终希望将其编程为 C 语言,因此与 C 语言兼容的东西将是令人惊奇的。

谢谢。很高兴回答任何和所有问题。

networking linux c

5
推荐指数
1
解决办法
6983
查看次数

如何授予对可执行文件的访问权限 /dev/console?

我编写了一个小型 C 应用程序来利用内部 PC 的扬声器。为了实现这一点,我正在与/dev/console它交谈,然后从扬声器发出哔哔声。

但是,我编译的可执行文件仅在我以root. 我知道我应该将运行可执行文件的用户添加到适当的组,但我不知道也无法找出哪些组具有所需的权限。

以我当前尝试以 ( apache)身份运行的用户身份运行可执行文件给我Permission denied.

请问有什么帮助吗?

linux permissions gcc c

5
推荐指数
1
解决办法
2683
查看次数

4
推荐指数
1
解决办法
358
查看次数

OSX 10.8 上的 Valgrind 安装错误

嗨,所以我一直在尝试对美洲狮进行 Valgrind。我按照 valgrind 网页上的说明进行操作:http : //valgrind.org/docs/manual/dist.install.html

以及此博客上的说明:http : //prateekvjoshi.com/2013/02/27/how-to-install-valgrind-on-mac-os-x/

但是在任何一种情况下,当我尝试“make”或“make install”时都会遇到相同的错误:

make[3]: *** [libcoregrind_amd64_darwin_a-m_syscall.o] Error 1
make[2]: *** [install] Error 2
make[1]: *** [install-recursive] Error 1
make: *** [install] Error 2
Run Code Online (Sandbox Code Playgroud)

有谁知道这些错误可能意味着什么?我找不到任何帮助,即使在 valgrind 的常见问题解答中也是如此。任何帮助都会很棒。


此外,在我上面提到的错误之前还有几行错误,以防万一:

m_syscall.c:525:1: error: unknown type name '__private_extern__'
m_syscall.c:526:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'do_syscall_unix_WRK'
m_syscall.c:549:1: error: unknown type name '__private_extern__'
m_syscall.c:550:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'do_syscall_mach_WRK'
m_syscall.c: In function 'vgPlain_do_syscall':
m_syscall.c:703:10: warning: implicit declaration of …
Run Code Online (Sandbox Code Playgroud)

terminal c osx-mountain-lion valgrind macos

4
推荐指数
1
解决办法
3025
查看次数

如何在vim中的新拆分或下一个拆分中打开引用

当我移动一个关键字然后点击 时^],它将跳转到当前活动拆分中的定义。如何保持当前拆分相同,而是在另一个拆分窗口(垂直或水平)中打开定义?

vim split-window c ctags

4
推荐指数
1
解决办法
2149
查看次数

C 库的手册页在哪个 Ubuntu 包中?

我不知道这里的其他人是否会发生这种情况,但是每次我构建一个新系统时,我都会忘记limits.hUbuntu 存储库中所说的手册页的位置。我已经安装了manpages-dev。有时间我会注意写下来。该死的。

c ubuntu

3
推荐指数
1
解决办法
542
查看次数

Geany 注释块格式

我试图找出在 Geany 中为 C 文件定义注释块样式的位置。

我的意思是,当我选择一个文本块并按 ctrl-e 时,文本块中的每一行都预先(在它的缩进级别)由一个 //~

一个问题来自额外的空间。在我得到的空白行上,//~但我在保存文件时也启用了修剪尾随空格,因此我得到以下序列。

void aprinter(uint8_t * buf) {
    uint16_t length = sizeof(*buf) / sizeof(buf[0]);

    printf("len: %d;\n", length);

    uint16_t i;
    for (i = 0; i < length; i++) {
        printf("buf[%d]: 0x%02x;\n", i, buf[i]);
    }

}
Run Code Online (Sandbox Code Playgroud)

我想注释掉这个函数的内容,所以我选择它并点击 ctrl-e

void aprinter(uint8_t * buf) {
    //~ uint16_t length = sizeof(*buf) / sizeof(buf[0]);
//~ 
    //~ printf("len: %d;\n", length);
//~ 
    //~ uint16_t i;
    //~ for (i = 0; i < length; i++) {
        //~ printf("buf[%d]: 0x%02x;\n", i, …
Run Code Online (Sandbox Code Playgroud)

linux comments c geany

2
推荐指数
1
解决办法
3263
查看次数