Tag: 调用

我如何摆脱__x86.get_pc_thunk.ax的召唤

我试图编译并将一个非常简单的C程序转换为汇编语言。 我使用的是Ubuntu,操作系统类型是64位。 这是C程序。 void add(); int main() { add(); return 0; } 如果我使用gcc -S -m32 -fno-asynchronous-unwind-tables -o simple.S simple.c这就是我的汇编源代码文件应该是这样的: .file “main1.c” .text .globl main .type main, @function main: pushl %ebp movl %esp, %ebp andl $-16, %esp call add movl $0, %eax movl %ebp, %esp popl %ebp ret .size main, .-main .ident “GCC: (Debian 4.4.5-8) 4.4.5” […]

从C中的另一个函数调用main函数

我有一个main函数,它在初始化期间运行一些函数,然后运行一个等待来自UART的命令的while循环。 当我看到一个特定的命令(让我们说重置)时,我调用一个返回值的函数。 我想做以下事情: 保存返回的值 使用返回的值再次启动main函数。 在main中的函数初始化期间需要返回值。 我是C的新手,我无法找出一种方法来保存main中的变量值。

尝试从C调用Python函数时的Segfault

所以,我想从C调用一个Python回调函数。 在某些时候,函数被发送到C并打包成这样的元组 PyObject *userData = Py_BuildValue(“Oi”,py_callback,some_number); 在那个区域的某个地方,我也做了Py_INCREF(py_callback) 。 在程序的某个稍后时间,我想调用该函数 PyObject *py_callback; int some_number; PyArg_ParseTuple((PyObject*)userData,”Oi”,&py_callback,&some_number); // returns true PyObject *py_result = PyObject_CallFunctionObjArgs(py_callback, /* … */ NULL); 并且最后一次调用会引发分段错误。 你有什么想法,为什么会做这样的事情?

`lua_load()`如何工作?

我如何将一大块Lua代码作为char加载并使用此函数运行它? 如果没有,我可以使用什么其他function以及lua_load()如何工作?

C / C ++后增量/ -decrement和函数调用

可能重复: 未定义的行为和序列点 我正在使用microsoft visual c ++。 请看以下示例: int n = 5; char *str = new char[32]; strcpy(str, “hello world”); memcpy(&str[n], &str[n+1], 6+n–); printf(str); // output is “hell world” 所以不可思议的是,我的编译器生成的代码首先递减n然后执行memcpy。 以下来源将完成我预期会发生的事情: int n = 5; char *str = new char[32]; strcpy(str, “hello world”); memcpy(&str[n], &str[n+1], 6+n); n–; printf(str); // output is “helloworld” 首先,我试着向自己解释一下。 最后一个参数首先被压入堆栈,因此可以先对其进行求值。 但我真的相信后递增/递减保证在下一个分号后进行评估。 所以我运行了以下测试: […]

如何以编程方式确定“写入”系统调用对特定文件是否是primefaces的?

在某些情况下,编码器不能依赖primefaces的系统调用,例如,如果文件在NFS文件系统上。 (参见NFS概述,常见问题和HOWTO文档 )。 但是大多数数据库工作最终都需要primefaces系统调用。 (cf 数据库系统的primefaces性 )。 是否有一种标准(和OS独立)方式确认写入(和其他系统调用)在C(或python)中的特定FILE上是primefaces的。 有什么建议? 后续说明:管道的primefaces性将在下面讨论: unix管道多个编写器 如果同时通过2个不同的进程在同一文件上调用写入系统调用会发生什么 请特别注意“man”页面提取专门处理O_APPEND: 如果设置了文件状态标志的O_APPEND标志,则应在每次写入之前将文件偏移设置为文件的末尾,并且在改变文件偏移和写入操作之间不应进行中间文件修改操作。

从C文件调用C ++函数

我是C和C ++的新手。 但我有一些C ++函数,我需要从C调用它们。我做了一个我需要做的例子 main.c : #include “example.h” #include int main(){ helloWorld(); return 0; } example.h : #ifndef HEADER_FILE #define HEADER_FILE #ifdef __cplusplus extern “C” { #endif void helloWorld(); #ifdef __cplusplus } #endif #endif example.cpp : #include void helloWorld(){ printf(“hello from CPP”); } 它只是不起作用。 我仍然在main.c收到对_helloWorld的未定义引用的错误。 这个问题在哪里?

有没有办法不等待system()命令完成? (在c中)

相近: 程序调用system()后程序没有执行任何操作 我对使用C很新,但基本上,我想执行以下行: int a = system(“python -m plotter”); 这将启动我开发的python模块。 但是,我希望我的c程序的其余部分继续运行而不是等待命令完成执行(python应用程序处于无限循环,因此它不会自动关闭)。 有没有办法用C / C ++做到这一点? 我希望这不是前一个问题的重新发布,但老实说我不知道​​该如何解决这个问题,我在搜索中找不到任何内容。 更新:解决方案是: int a = system(“start python -m plotter &”);