小编vov*_*ick的帖子

低开销方式访问跟踪进程的内存空间?

我正在寻找一种有效的方法来访问(对于读取和写入操作)我的ptraced子进程的内存空间.正在访问块的大小可以从几个字节不等大小高达数兆字节,因此,使用ptrace的呼叫与PTRACE_PEEKDATAPTRACE_POKEDATA它的时间和开关方面每一个他们所谓的似乎是资源的无谓浪费时间阅读只有一个字.但是,我能找到的唯一一个替代解决方案是/proc/<pid>/mem文件,但它早已被认为是只读的.

有没有其他(相对简单)的方式来完成这项工作?理想的解决方案是以某种方式与其父进程共享我的子进程的地址空间,然后使用简单的memcpy调用来复制我需要的两个方向的数据,但我没有线索如何做到这一点以及从哪里开始.

有任何想法吗?

linux ptrace

7
推荐指数
2
解决办法
1231
查看次数

解析类C定义字符串最有效的方法?

我有一组用C语言编写的函数定义,其中一些额外的关键字可以放在一些参数之前(例如,与"unsigned"或"register"相同)我需要分析这些行以及一些函数存根并从它们生成实际的C代码.

  • 这是正确的,Flex/Yacc是最合适的方式吗?

  • 它会比使用正则表达式写一个Shell或Python脚本慢(这可能会变得非常痛苦,因为我认为,如果额外关键字的数量变得更大并且它们的效果会有相当的不同),前提是我对分析器/解析器没有经验(虽然我知道LALR如何完成它的工作)?

  • Lex/Yacc上有哪些好的材料可以解决类似的问题吗?我能找到的所有论文都使用了与"玩具"计算器相同的原始例子.

任何帮助将不胜感激.

parsing yacc flex-lexer

5
推荐指数
1
解决办法
701
查看次数

Pthreads作为UNIX中同步控制台输入的标准解决方案?

我得到了一个评估,使用ncurses为Linux编写一个简单的聊天客户端.聊天有两个窗口:一个显示另一个客户端说的内容,另一个显示用户输入.

让我感到困惑的是如何处理不断来自套接字的数据并同时等待用户的输入.我想到的唯一一个解决方案就是使用pthreads,但我觉得我错过了一些更合适的东西.

有什么建议?

linux multithreading pthreads

0
推荐指数
1
解决办法
259
查看次数

标签 统计

linux ×2

flex-lexer ×1

multithreading ×1

parsing ×1

pthreads ×1

ptrace ×1

yacc ×1