小编dus*_*abo的帖子

关系运算符会影响赋值运算符操作吗?

为什么下面提到的程序的输出0不是20

#include <stdio.h>

int main()
{
    int i = 10, j = 0;
    if (i || (j = i + 10))
       /* do something */;                
    printf("%d\n",j);
}
Run Code Online (Sandbox Code Playgroud)

c

16
推荐指数
3
解决办法
583
查看次数

select(),poll()或epoll()?对于sysfs属性

我正在使用gpio中断.我在"/ sys/class/gpio/gpio38/value"中有一个文件.我想在属性发生变化时发出通知.那么我怎样才能在用户空间中实现这一目标.由于我已经收集了信息,我可以使用select(),poll()或epoll().那么这个应用哪个是正确的?或者请建议我,如果我可以使用/ proc/irq或其他东西.谢谢 :)

c linux epoll embedded-linux beagleboard

8
推荐指数
1
解决办法
7638
查看次数

Linux IPC选择?

我有两个进程A和B. A和B有时需要进行通信(双向)以传递信号,消息等.
我已经对Linux中可用的IPC进行了一些基础研究,如信号量,消息队列,dbus等.
现在我是在决定使用哪一个时很困惑,谁能告诉我哪个IPC更适合我的应用?

提前致谢

编辑:阐述应用程序.(这是一个嵌入式应用程序)
过程A将监控温度,速度计算等.过程B将驱动电机,读取传感器值(数字)等.有时我需要将信号发送到过程B告知达到最高温度,所以停止驱动电机.有时需要将从流程A中的传感器读取的数据发送到流程B.像这样,需要在流程中传递数字数据.我在ARM架构中这样做.

linux semaphore ipc dbus message-queue

7
推荐指数
1
解决办法
3615
查看次数

sizeof运算符返回4(char + short)

鉴于此代码段:

    #include <stdio.h>

    int main() {

        short i = 20;
        char c = 97;

        printf("%d, %d, %d\n", sizeof(i), sizeof(c), sizeof(c + i));

        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

为什么sizeof(c + i) == 4

c

7
推荐指数
2
解决办法
896
查看次数

Beaglebone中的中断

我正在读取beaglebone gpio引脚中的霍尔传感器输出,对于每个中断服务例程需要执行的上升沿。那么,如何在beaglebone中使用外部中断?是否有用于此目的的标准驱动程序?

谢谢。

linux embedded linux-device-driver embedded-linux beagleboard

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

为什么不只在写入文件时显示此消息(使用 poll C Linux 函数)?

我正在阅读有关 C 编程中的 poll 并构建了poll(2) 手册页中给出的应用程序。

这是示例:

#include<stdio.h>
#include <stropts.h>
#include <poll.h>
#include <fcntl.h>

int main() {

    struct pollfd fds[2];
    int timeout_msecs = -1;
    int ret;
    int i;

    /* Open STREAMS device. */
    fds[0].fd = open("/home/jeshwanth/mywork/poll/dev0", O_RDONLY);
    fds[1].fd = open("/home/jeshwanth/mywork/poll/dev1", O_RDONLY);
    fds[0].events = POLLOUT | POLLWRBAND;
    fds[1].events = POLLOUT | POLLWRBAND;

    while (1) {
        ret = poll(fds, 2, timeout_msecs);

        if (ret > 0) {
            /* An event on one of the fds has occurred. */
            for (i = …
Run Code Online (Sandbox Code Playgroud)

c linux polling

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

pthread中两个线程之间的通信

我正在创建两个线程 thread1 和 thread2。线程 1 正在读取模拟值,线程 2 应处理线程 1 中读取的模拟值并设置 PWM 参数。到目前为止我所做的是,在主文件(我在其中创建线程)中声明了一个全局变量(用于存储模拟值)并将指向全局变量的指针传递给两个线程。在线程1中,读取的模拟值存储在全局变量中,在线程2中读取全局变量并对其进行处理。所以,我的问题是还有其他方法可以做到这一点吗?即我们有信号量、互斥量等,哪个最适合这个应用程序?

c linux multithreading posix pthreads

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

Beaglebone gpio输入无法正常工作

我正在使用beaglebone使用sysfs接口从特定引脚访问数字输入.我可以改变输出状态而不是输入:(.我做的是,我有两个引脚pinA和pinB.pinA我做了输出而pinB我做了输入.将pinA连接到pinB.通过发送将pinA配置为输出引脚通过传入将sysf和pinB中的direction属性作为输入.然后我将PinA的值更改为1并将其作为输出给出1(我使用LED测试).但是当我读取PinB的值时,它仅给出0,即使我将0传递给pinA的值.可能是什么原因?

谢谢 :)

linux embedded-linux beagleboard sysfs gpio

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

dd if=/dev/sdb 命令的作用是什么?

我已经格式化了我的随身碟,它位于 /dev/sdb 中。当我执行命令dd if=/dev/sdb命令时,它不断在控制台中打印一些垃圾。我的疑问是,当我格式化随身碟并执行此命令时,它不应该打印任何内容。但为什么会打印呢?

linux bash dd

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