Articles of c + +

Android中的USB Dongle识别 – Beaglebone

问题 : 部分华为USB Dongle在Beaglebone中未被Android JellyBean4.1.2识别。 详细 : 我正在使用Android JellyBean4.1.2上运行的BeagleBone。 Huawei – E1731 [Locked] , Huawei – E303D [Locked]在这个平台上工作正常 。 Huawei E303F , Huawei E303F (Both Factory Unlocked)都无法被OS 识别 (通讯文件未生成) 我自己做的解决方法 使用AT命令将Dongle模式更改为仅调制解调器模式 将供应商ID和产品ID添加到init.devicename.sh(强制内核识别USB Dongle) 使用VID和PID更改USB模式开关文件 现在提到的USB软件狗工作正常。 但是我想find根本原因并且必须解决它。 有没有任何select通过从源代码构buildAndroid操作系统来解决它? 如果是的话,怎么样? 哪些文件需要更改? 为什么有些软件狗直接识别没有提到的解决方法? UPDATE 正如skoperst所说,我在kernel_dir/drivers/usb/serial/option.c other than hard-coding Device VID & PID是否还有其他的解决scheme。 我需要一些更通用的解决scheme,以促进Plug & Play机制。 如何Plug & Play […]

如何从存储在char *指针中的名称调用ac函数?

我想dynamic调用一个函数的名字,例如,假设有以下函数和string: void do_fork() { printf ("Fork called.\n"); } char *pFunc = "do_fork"; 现在我需要通过*pFunc调用do_fork() 。 那可能吗? 无论是C / C ++代码欢迎,非常感谢!

在我的程序中使用OpenBSD的malloc,realloc和free

我想在我的Debian lenny桌面上使用OpenBSD的malloc,realloc和free,而不是glibc。 他们是否只是在replace:他们会在我的Linux桌面上工作? 哪些是我需要的文件,哪些OpenBSD软件包包含它们?

我们怎样才能将一个string转换为int为非常大的整数值?

我已经使用函数atoi将string转换为int ,它工作正常,但是当我给 num = atoi (argv[1]) ; // argv contain 4294967295 maximun value of 32 bit integer 它给我2147483647答案,这基本上是4294967295的一半 我想这是因为char和int的字节的差异。 任何人都可以解释什么发生在位和字节,以及如何解决它或将其转换为int

将毫秒转换为timespec – GNU移植

我想把毫秒转换成GNU(GCC)linux的timespec结构。 我已经尝试过下面的代码。 timespec GetTimeSpecValue(unsigned long milisec) { struct timespec req; //long sec = (milisecondtime /1000); time_t sec = (time_t)(milisec/1000); req->tv_sec = sec; req->tv_nsec = 0; return req; } 运行这个代码给我下面的错误。 在'GetTimeSpecValue'之前预期'=',',',';','asm'或'__attribute__' 我也在代码中包含time.h文件。

在mq_send中发送结构体

我使用的是POSIX IPC,根据文档 – http://man7.org/linux/man-pages/man3/mq_send.3.html mq_send()方法只发送char *数据,而mq_recv()只接收字符数据。 但是,我想发送一个自定义结构到我的消息队列,并在接收端,我想要的结构。 示例结构: struc Req { pid_t pid; char data[4096]; } 那么,有没有人知道如何在C lang中做到这一点?

使用clang编译时找不到'omp.h'文件

我正尝试在运行linux mint的笔记本电脑上使用clang(3.7.0)来设置OpenMP项目。 现在我读了OpenMP不被支持,所以我按照这个教程https://clang-omp.github.io/将openMP整合到了clang中。 我已经克隆了源代码,设置了环境variables,并将-fopenmp标志设置为我的项目,但是在构build时,仍然收到错误“fatal error:'omp.h'文件未find”。 我的猜测是我已经设置了错误的环境variables。 有没有办法检查我是否把它们放在正确的地方? 我刚把它们复制到.bashrc文件中。 编辑:当我运行$查找omp.h我得到: /usr/include/re_comp.h /usr/include/linux/ppp-comp.h /usr/include/linux/seccomp.h /usr/include/net/ppp-comp.h /usr/include/openssl/comp.h /usr/lib/gcc/x86_64-linux-gnu/4.8/include/omp.h /usr/lib/perl/5.18.2/CORE/regcomp.h /usr/src/linux-headers-3.13.0-24/arch/arm/include/asm/seccomp.h /usr/src/linux-headers-3.13.0-24/arch/microblaze/include/asm/seccomp.h /usr/src/linux-headers-3.13.0-24/arch/mips/include/asm/seccomp.h /usr/src/linux-headers-3.13.0-24/arch/powerpc/include/uapi/asm/seccomp.h /usr/src/linux-headers-3.13.0-24/arch/s390/include/asm/seccomp.h /usr/src/linux-headers-3.13.0-24/arch/sh/include/asm/seccomp.h /usr/src/linux-headers-3.13.0-24/arch/sparc/include/asm/seccomp.h /usr/src/linux-headers-3.13.0-24/arch/x86/include/asm/seccomp.h /usr/src/linux-headers-3.13.0-24/include/linux/ppp-comp.h /usr/src/linux-headers-3.13.0-24/include/linux/seccomp.h /usr/src/linux-headers-3.13.0-24/include/net/ipcomp.h /usr/src/linux-headers-3.13.0-24/include/uapi/linux/ppp-comp.h /usr/src/linux-headers-3.13.0-24/include/uapi/linux/seccomp.h /usr/src/linux-headers-3.13.0-24-generic/include/config/seccomp.h /usr/src/linux-headers-3.13.0-24-generic/include/config/crypto/pcomp.h /usr/src/linux-headers-3.13.0-24-generic/include/config/inet/ipcomp.h /usr/src/linux-headers-3.13.0-24-generic/include/config/inet6/ipcomp.h /usr/src/linux-headers-3.13.0-24-generic/include/config/isdn/ppp/bsdcomp.h /usr/src/linux-headers-3.13.0-24-generic/include/config/ppp/bsdcomp.h /usr/src/linux-headers-3.13.0-24-generic/include/config/xfrm/ipcomp.h /usr/src/linux-headers-3.13.0-24-generic/include/linux/ppp-comp.h /usr/src/linux-headers-3.13.0-24-generic/include/linux/seccomp.h 这里是我的makefile: # Requires the following project directory structure: # /bin # /obj # /src # Use 'make […]

使用fclose来pipepopen是一个严重的错误?

几个月前我写了一个Linux的CGI应用程序,它使用popen()来读取命令的输出,然后用fclose()closurespipe道。 现在,我读了closurespipe道需要使用pclose() 。 手册说: popen()的返回值在所有方面都是一个标准的I / Ostream,除了它必须用pclose()而不是fclose(3)来closures。 我的代码是这样的: if ((NULL != (f = popen(command.value, "r")))) { //do something fclose(f); } 我的问题是: 我的错误有安全问题? 它的程序目前正在生产中。 在testing中,没有任何问题。 是真的需要,使用pclose()而不是fclose()修补它? 注:我只在程序中打开PIPE一次。 今天,在我本地的家里,我做了一些testing,并且fclose()和pclose()不返回表示失败的EOF。

在位域的情况下,哪一个更好用,unsigned char或unsigned int,为什么?

我只想知道下面的结构声明。 哪一个更好用于内存分配,为什么? 那么在无符号字符和无符号整数的情况下填充呢? struct data{ unsigned char a:3; unsigned char b:4; }; 和 struct data{ unsigned int a:3; unsigned int b:4; };

正确的初始化序列为Linux串行端口

我写了一个必须在Linux上使用串口的应用程序,尤其是ttyUSB。 读和写操作是用标准的select()/ read()循环和write()来完成的,它们可能没有错,但是初始化代码(或者某些部分的缺失)会损害tty子系统中的某些东西。 这里是: vuxboot(string filename, unsigned baud = B115200) : _debug(false) { _fd = open(filename.c_str(), O_RDWR | O_NOCTTY); if(_fd < 0) throw new io_error("cannot open port"); // Serial initialization was written with FTDI USB-to-serial converters // in mind. Anyway, who wants to use non-8n1 protocol? tcgetattr(_fd, &_termios); termios tio = {0}; tio.c_iflag = IGNPAR; […]