我的C应用程序如何与bluetoothctl通信?

时间:2016-10-21 21:12:00

标签: stdout stdin bluez

在C语言中,我想开发一个运行bluetoothctl的应用程序,然后向它发送命令并接收信息,就像我们在控制台中运行bluetoothctl一样。

int main(void)
{
int fd, err = 0;
char* tty;

wait_pid = -1;
printf("BLEapp program start.......\r\n");
if (wait_pid == -1) {
    printf("Start to run bluetoothctl......\r\n");
    if ((pid = fork()) < 0) {
        err = 1;
        printf("Create new progress failed.\r\n");
    }
    else if (pid == 0) {
        // Child progress, run as default when xid = 0x0 and mastAddr = 0x0
        execl("/root/bluez-5.42/client/bluetoothctl", "bluetoothctl", NULL);
    }

}
else {
    printf("The child procress is still running.....\r\n");
    err = 1;
}

//tty = ttyname(STDIN_FILENO);
//printf("stdin name is %s.\r\n", tty);
//fd = open(tty, O_WRONLY);
//if (fd < 0) {
//    printf("Open stdin error..............\r\n");
//}
while (1) {
    sleep(2);
    fputs("devices\n", stdin);
    //write(fd, "devices\n", 8);
}


return err;
}

我将bluetoothctl作为子进程运行,并希望向其发送“devices \ n”命令,并读取列出的设备。但它不起作用。

请帮我解决这个问题。

感谢。

0 个答案:

没有答案