首页 > TAG信息列表 > c-3
fifo linux-write()函数突然终止程序
我正在用C实现一个管道,其中多个生产者程序(在我的情况下为9)将数据写入一个单一的消费者程序. 问题在于,某些生产者(有时是一两个)有时会在调用write()函数时突然退出程序. 代码很简单,这是生产者代码: #include <fcntl.h> #include <sys/stat.h> #include <sys/types.h> #include如何在python中使用ctypes重载C库的弱声明函数?
我正在尝试建立一个测试环境来验证我正在使用的C库.该库嵌入在运行自定义linux的设备上.经过一番网上阅读后,我决定使用python和ctypes从python调用我的库函数.它几乎对我所有的函数都有效,但是在使用回调函数时会卡住. 我的回调函数在库中定义为“弱”.我想知道是否可以使用pythonPHP vs C中的箭头运算符
我是一名PHP程序员,试图学习更多PHP背后的理论,但是在连接PHP和C之间的点时遇到麻烦.例如,箭头运算符在PHP和C中是否完全相同? 这是我研究时想到的: >在C中,->只是别名,a-> b与(* a).b相同.箭头运算符只是取消引用指针,因此您可以与地址变量进行交互. >在PHP中,->是参考.它“引用实例用PHP和C共享内存?
您可以使用共享内存在Windows中的php脚本和c程序之间进行通信吗? C程序始终运行,并使用内存映射文件,即: handle1 = CreateFileMapping( (HANDLE)0xFFFFFFFF, NULL, PAGE_READWRITE, 0, sizeof(byte)*BUFFER_SIZE, "my_foo" ); hView = (LPINT) MapViewOfFile(handle1, FILE_MAP_Ac-将套接字重新绑定到其他接口
是否存在现有的Linux / POSIX C/C++库或示例代码,用于如何将套接字从一个物理接口重新绑定到另一个物理接口? 例如,我在与物理连接A关联的套接字上进行ping传输,并且我想将该套接字重新绑定到物理连接B,并让ping数据包继续在连接B上发送和接收(在切换过程中短暂延迟后,过度). 我只需java-从Groovy调用C API
我知道使用Python调用Posix和Win API更好,但是我想知道是否有一种从Groovy或至少使用Java调用C API的方法没有那么痛苦.解决方法:从Java调用本机平台(隐含所有C/C++代码)的官方方法是通过JNI.我不会称其为“不太痛苦”. 您可以考虑获取SWIG为您生成大多数讨厌的代码,我已经使用过几c-使用zend读取PHP.ini以进行PHP扩展(不是PHP语言)
我正在尝试使用zend从php.ini中读取一些设置.我正在使用的API是 long zend_ini_long(char *name, uint name_length, int orig) 但是它总是返回0.我仔细检查了名称,并确保我在php.ini中指定的值大于0.是否缺少任何内容?解决方法: long maxwait = zend_ini_long("max_execution_timysql_insert_id线程安全吗?
我正在使用MySQL C API构建数据库客户端应用程序,并且我需要在INSERT语句中获取最后一个自动递增的值,因此mysql_insert_id可以. 但是此客户端是多线程的,并且具有如下代码: mysql_query(conn, query_string); value = mysql_insert_id(conn); 我不知道它将返回什么,此查询会自C#-本机C Dll调用C/C++LI混合模式Dll-未处理的异常
我有一个由旧版应用程序动态加载的本机C Dll.该dll的目的是允许基于某些应用程序事件来覆盖应用程序行为.我有一个C#dll,其中包含我从本机C dll通过混合模式C/C++LI dll调用以增强这些应用程序事件的函数.使用此体系结构的应用程序在Windows 2000上可以完美运行. 该应用程序还可以在Python C API中使用多个模块/类型?
我有两个不同的Python扩展模块;我们将它们称为A和B.模块A包含一个称为容器的存储类类型,我想在模块B中使用它作为类方法的返回类型. 我似乎找不到任何有关如何执行此操作的文档.我大致按照本文来创建模块/类,只是我没有将所有方法都声明为静态方法,因此可以访问它们:http://nedbatche变量名称与GDB调试器冲突
我正在Linux上使用GDB调试C程序,并且需要在程序运行时查看成员变量的值.不幸的是,成员变量名为list,它恰好是GDB关键字.所以当我尝试: 打印m_operations.m_data [10] .m_data.list 我知道了 表达式中的语法错误,靠近列表”. 我尝试了各种方法来向GDB表示我正在输入文字表达式,例如在c-具有非null shmaddr的Shmat
有人可以提供一个示例(合理地)将shmat()函数与第二个非空参数一起使用吗? 该手册说: #include <sys/shm.h> void *shmat(int shmid, const void *shmaddr, int shmflg); The shmat() function attaches the shared memory segment associated with the shared memory identifier sh如何在两个进程之间共享链表?
我有两个过程,我想在它们之间共享一个链表.其中一个 进程将只读取列表,而其他进程将修改列表(添加/删除条目).你能告诉我如何实现吗? 让我为其添加更多详细信息,语言是C,平台是Linux.似乎共享内存是一种方法,但我不知道如何实现它. 如果任何人都可以告诉我实现该目标的方法,那么它将c-Linux蓝牙编程
我正在制作一个桌面应用程序以与嵌入式设备连接.我打算使用Windows,但是由于缺少适当的示例和文档,我决定使用Linux bluez开发.有人可以建议一个很好的资源来进行bluez编程.我找到了MIT文档,但仅此而已.解决方法:bluez使用D-Bus进行通信.使用D-Feet检查org.bluez接口,以便可以根据D作为线程调用的C函数-Linux Userland程序
我正在用C编写一个Linux守护程序,该守护程序通过SPI接口(ioctl)从ADC获取值. SPI(spidev-用户空间)似乎有点不稳定,并且会在随机时间冻结守护程序. 我需要更好地控制对获取值的函数的调用,并且我正在考虑将其作为线程,可以等待完成并获取返回值,如果超时,则假定它冻结并杀死了它.它c-跳到argv吗?
我正在尝试shellcode,偶然发现了nop-slide技术.我写了一个小工具,将buffer-size作为参数并像这样构造一个缓冲区:[NOP | SC | RET],NOP占用缓冲区的一半,然后是shellcode,其余的则填充(猜测的)返回地址.它与他的著名论文中描述的工具aleph1非常相似. 我脆弱的测试应用程序与他的论文c-打印随机数将返回负数. (/ dev / urandom)
我已经写了一个源代码来打印指定范围内的随机数.但是它也返回一些负数,这正常吗?如果没有,我该如何纠正? #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> int main( int argc, char* argv[]) { int fd, n; fd = open("/dev/ura使用C/C++或Java打开现金抽屉
我需要使用C/C++或Java打开现金抽屉.这是带有USB连接的POS-X钱箱.我以前从未做过这样的事情.我注意到钱箱链接到“ COM3”端口.我知道Java没有USB API,所以我转向了C/C++.解决方法:有关它的论坛帖子here. 简而言之,安装驱动程序,将COM3波特率更改为9600,并向COM端口发送“ 1”. 在j在Linux上复制Visual Studio的内存冲突检测
我使用QT Creator在Linux上开发了命令行(非GUI)C程序,该程序内部使用gdb作为其调试器.当我使用Visual Studio在Windows上调试该程序时,它报告说它在分配的内存范围之外进行写操作(尽管它没有在发生的确切时间报告冲突,因此仍然很难跟踪).我最终设法在代码中找到一个位置,其中mallocc-Ubuntu中的skbuff.h文件在哪里?
我读过很多书,关于skbuff.h的路径是usr / include / linux.我在Ubuntu,Fedora和backtrack中进行了搜索,但是找不到头文件.有人可以帮我找到此文件吗?提前致谢.解决方法:它是内核源代码的一部分,因此您很可能在默认情况下未安装它. 您可以通过以下方法了解哪些软件包拥有该文件: ~$dpc-使用Cython将功能公开给另一个应用程序
我有这段C代码,展示了如何通过将软件编译为DLL并将其放入应用程序文件夹来扩展软件: #include <windows.h> #include <DemoPlugin.h> /** A helper function to convert a char array into a LPBYTE array. */ LPBYTE message(const char* message, long* pLen) { size_t lc-x86程序下方的端口连接到mips32
在X86 arch的示例代码下面, # define INC(_lval,_lqual) \ __asm__ __volatile__ ( \ "lock ; incl (%0)" : /*out*/ : /*in*/"r"(&(_lval)) : "memory", "cc" ) 请有人帮我等效的MIPS32拱.解决方法:看起来像gcc内联汇编的原子增量.这是原子增量的gcc内在函数头文件中SIGUNUSED的确切位置在哪里?
我有一些必须针对多个平台进行编译的代码.下面将使代码编译,但是我想知道SIGUNUSED符号的实际定义位置: 工作守则 #ifdef LINUX #define SIGEMT SIGUNUSED #endif … void set_sig_trap() { signal( SIGHUP, Signal ); /* floating point exception */ sic-如何在Linux下将显示输出传递到串行端口?
我们有2台电脑.第一台计算机的操作系统是Linux(任何版本(对我来说并不重要)),而另一个操作系统是Windows(任何版本,我不在乎).它们通过9针串行端口连接. 我想知道如何将Linux的默认显示输出更改为串行端口,而不是其自己的监视器.我想通过Windows XP中的超级终端查看所有Linux输出(错误:没有包含要在其中搜索stdio.h的路径
我曾经能够编译C程序,但是现在我不能: $cat helloworld.c #include <stdio.h> int main(void) { printf("Hello, world!\n"); return 0; } $gcc helloworld.c helloworld.c:1:19: error: no include path in which to search for stdio.h 是的,我确实有/usr/include/st