Tag: linux

在multithreading应用程序中使用libmysqlclient

我正在Linux平台上构建一个C应用程序。 我需要使用libmysqlclient来连接数据库。 我下载了Linux源代码包mysql-connector-c-6.0.2.tar.gz。 我按照说明编译了它。 我得到以下库: libmysqlclient.a libmysqlclient.so libmysql.so.16 libmysqlclient_r.so libmysql.so libmysql.so.16.0.0 如果我的应用程序是multithreading的,我可以将我的应用程序与libmysqlclient.a链接吗? 根据mysql文档( http://forge.mysql.com/wiki/Autotools_to_CMake_Transition_Guide ),使用cmake工具,客户端始终是线程安全的。 在将我的应用程序与libmysqlclient.a链接后,我的应用程序崩溃了以下调用堆栈: #0 0x0867878a in my_stat () No symbol table info available. #1 0x08671611 in init_available_charsets.clone.0 () No symbol table info available. #2 0x086720d5 in get_charset_by_csname () No symbol table info available. #3 0x086522af in mysql_init_character_set () No symbol table info […]

如何在Linux内核中将char 字符串转换为int?

如何在linux内核中将char []转换为int validation输入的文本实际上是一个int? int procfile_write(struct file *file, const char *buffer, unsigned long count, void *data) { char procfs_buffer[PROCFS_MAX_SIZE]; /* get buffer size */ unsigned long procfs_buffer_size = count; if (procfs_buffer_size > PROCFS_MAX_SIZE ) { procfs_buffer_size = PROCFS_MAX_SIZE; } /* write data to the buffer */ if ( copy_from_user(procfs_buffer, buffer, procfs_buffer_size) ) { return -EFAULT; } […]

如何在C语言中使用sched_getaffinity和sched_setaffinity?

我在尝试着: 使用处理器固定同时运行16个副本(每个核心2个副本) 在处理器固定(每个核心2个副本)的同时运行8个副本,并在某个function表示function1完成后将处理器核心翻转到最远的核心。 我面临的问题是如何选择最远的处理器。 有些朋友建议使用sched_getaffinity和sched_setaffinity,但我认为没有找到任何好的例子。

编写插件系统?

经过几个小时的研究,我什么都没有,所以我向你们求助于希望找到解决方案的好人。 我将用c ++编写一个bot,并且在某些时候想为它创建一个插件系统。 现在我知道我可以为它编写脚本语言,但是,我知道可以只编写一个api并在运行时动态地将程序链接到该API。 我的问题是,我如何获得动态链接(就像hexchat的插件一样)? 是否有任何优雅的解决方案,或者至少是典型设计的理论?

使用ptrace进行系统调用跟踪

我编写了一个程序来列出命令执行的所有系统调用(比如/ bin / ls)。 现在我要做的是找到所有系统调用参数,环境变量,可以传递给它的命令行参数 示例:如果我打开文件。 系统调用sys_access会打开文件吗? 但是如何获得这些价值呢? 想要打开,读取,写入,关闭等系统调用。 根据我的研究,这些必须在寄存器中(ebx – edx)如果是这样,这些寄存器值表示什么? 我有这个链接 。 但我真的无法从那里得到太多。 此外,任何进一步的参考将是非常有帮助的。

LD_PRELOAD是否可以使用不同参数的函数?

假设我通过创建共享对象并使用LD_PRELOAD首先加载它来替换函数。 是否可以使该函数的参数与原始库中的参数不同? 例如,如果我替换pthread_mutex_lock ,那么代替参数pthread_mutex_t需要pthread_my_mutex_t 。 可能吗? 其次,除了函数之外,是否可以使用LD_PRELOAD更改结构声明? 例如,可以向结构添加一个字段。

在Linux上使用C中的INI文件

有没有一种标准的方法来使用C读取像Linux的INI文件这样的配置? 我正在使用基于Linux的手持设备并在C中编写代码。 否则,我想知道任何替代方案。 最后更新: 我已经探索过甚至使用过LibConfig。 但是占地面积很大,我的使用太简单了。 因此,为了减少占用空间,我已经推出了自己的实现。 实现不是太通用,实际上已经完全耦合了。 配置文件在启动应用程序时解析一次,并设置为某些全局变量。

sig_atomic_t实际上如何工作?

编译器或操作系统如何区分sig_atomic_t类型和普通的int类型变量,并确保操作是primefaces的? 使用两者的程序具有相同的汇编代码。 如何特别注意使操作成为primefaces?

GDB在linux中使用coredump文件

我刚刚在linux中获得了一个core-dump文件 ulimit -c unlimited 我该如何附加gdb 我需要给它命令行参数。 样本执行: ./my_prog arg 帮我进入gdb 干杯!!

为什么这个程序打印“分叉!”4次?

为什么这个程序打印“分叉!”4次? #include #include int main(void) { fork() && (fork() || fork()); printf(“forked!\n”); return 0; }