Articles of Linux操作系统

析构函数称为窗体不适当的库

代码如下: foo.h中 extern "C" { int sdq_init_connector(const SSchar* path); } foo.cxx int sdq_init_connector(const SSchar* path) { Logger log(LOG_DEBUG, "sdq_init_connector"); /* here goes some not so relevant code */ log.write("Here be dragons"); return 0; } 还有Logger类,在foo中使用,没有什么有趣的,构造函数(char *消息),析构函数()和写(char *消息)。 问题总结: 当我从testing设备调用libfoo.so时,它完美地工作,但是在函数sdq_init_connector返回之后从生产系统调用它时SEGFAULTs backtrace在下面 #10 <signal handler called> #11 0x583d7fee in Node::~Node() () from /opt/siebel/sba81/siebsrvr/mw/lib/libtl.so #12 0x583de09a in Logger::~Logger() […]

pythonCGI脚本不会在Linux上打印希伯来语

可能重复: 如何使python 3 print()utf8 我不能让Python的CGI打印在Linux上的HTML网页的希伯来字符。 这是一个脚本,它演示了这个问题: #!/usr/bin/python3 print('Content-Type: text/html; charset=utf-8\n\n') print ('<html><body>') print ('first') print ('second') print ('תמות') print ('third') print ('</body></html>') 该文件保存在utf-8(不含BOM)中。 我直接从浏览器地址栏中调用这个.cgi脚本。 输出是: first second 而希伯来文和其他任何后面的都没有了。 没有错误显示在Apache日志或启用cgitb 我用apache 2.2和python 3.2在linux ubuntu 12.04和centos 6上用firefox,chrome和IEtesting。 当然,我可以在任何纯HTML页面上看到希伯来语。 在Windows上它工作得很好。 解: import sys print (sys.stdout.encoding) 给我: ANSI_X3.4-1968 最后这解决了我的问题: import sys, codecs sys.stdout = codecs.getwriter('utf-8')(sys.stdout.detach()) 这是另一个select: import sys, io […]

运行期望代码时发送错误

我做了一个期望的代码: #!/ usr / bin / expect -f 产卵ls 期待“*] $ *” 发送“cd / to / some / path \ n” 期待“*] $ *” 发送“sudo -u root ./program.sh” 期待“*:*” 发送“i_am_password \ n” 相互作用 执行它时,我得到下面的错误: 产卵ls my_pgm.exp abc.sh axyz.zip all.zip test.exp 发送:spawn id exp6未打开 在执行时 “send”cd / to / some / path \ n“” (文件“./my_pgm.exp”第5行) 我在Ubuntu上运行这个代码。 […]

如何将一个协调的元素写入给定的控制台?

给定下一个控制台: import os import tty import termios from sys import stdin class Console(object): def __enter__(self): self.old_settings = termios.tcgetattr(stdin) self.buffer = [] return self def __exit__(self, type, value, traceback): termios.tcsetattr(stdin, termios.TCSADRAIN, self.old_settings) … def dimensions(self): dim = os.popen('stty size', 'r').read().split() return int(dim[1]), int(dim[0]) def write(self, inp): if isinstance(inp, basestring): inp = inp.splitlines(False) if len(inp) == 0: […]

性能计数器信息需要

我需要了解性能计数器如何适用于我的研究项目。 我已经理解硬件如何支持对事件的监控。英特尔手册给出了芯片上的性能监控单元如何帮助获得计数器的描述。 我也学到了MSR模块如何获取各种事件的msr寄存器的信息。 我需要学习以下的东西。 1)如何将性能监视工具同时用于多个进程。 我认为所有的寄存器将在上下文切换时保存,并在进程重新启动时加载。浏览互联网我得到了像“pfm_context_load”和“pfm_context_unload”,但它没有太多的信息.​​…..-> “我需要更多关于它是如何工作的详细信息,所以请提供一些链接,可以帮助我达到我的理解的文档“ 2)性能计数器如何在虚拟环境中工作? 在这样的环境下衡量柜台有什么问题? 我浏览了几篇文章,并有一些信息,但需要更多的细节信息。 所以如果有人能指导我一些关于这些主题的文档,或者至less指导我在哪里寻找所有这些信息,是一个很好的帮助! … 如果这不是正确的论坛,那么请指导我正确的地方.. 谢谢 阿努普

JDK安装后缺lessJavah(Linux)

我试图在Fedora17上用Eclipse(Indigo)设置Android开发。 几乎所有东西似乎都可以工作,只是缺lessjavah,为本地(NDK / JNI)模块构buildC头。 在我的Windows安装工具链它是在同一个文件夹中的javac在,但是这不是在Linux机器上的情况。 我之前安装了Oracle的JDK1.7,发现它对于我想做的其他事情(也包括那里,没有javah)来说是新的,卸载了它,现在安装了JDK1.6。 什么可能是错的?

关于这种情况下消息队列与共享内存的适用性或适用性

这是关于在这种情况下消息队列与共享内存的适用性或适用性: 多个DLL或共享库 每个库将尝试与我的主应用程序DLL或共享库进行通信,例如,所有DLL或共享库的I / P到O / P将通过我的主应用程序的共享库进行通信。 这些通信是asynchronous的。 一些DLL或共享库,除了我的应用程序的.so,将创build多个线程,每个这样的线程的输出需要传回到我的应用程序库。 这些线程的输出又是asynchronous的。 我的主要应用程序DLL / .so将继续与其他工作,这很可能是通过networking与一些服务器通信,并作出相应的响应 所有其他DLL / .so的function是asynchronous的 Q-1:在上述哪种情况下最合适? (I)消息队列,(II)共享内存? Q-2:使用共享内存在几个共享库之间强制同步的任何引用或链接?

运行Puppet代理程序时出现“无法分配内存”

我运行“puppet agent -t”时出现以下错误: Cannot allocate memory – /bin/uname -s … Cannot allocate memory – /sbin/arp -an … Cannot allocate memory – /bin/uname -s … Could not retrieve kernelversion: private method `split' called for nil:NilClass Could not retrieve kernelmajversion: private method `split' called for nil:NilClass … 完整的错误在这里: http : //pastebin.com/fhjqrgBn 当我手动运行命令/bin/uname -s ,我得到的结果没有任何错误。 free命令显示了这一点: total used […]

Bash脚本:跳过文件和grep

Bash脚本不是我最强的一点。 我有一个文件结构为 % comment filename1 pattern-to-search1 filename1 pattern-to-search2 … 我想编写一个脚本来为filename的每一行的所有pattern-to-mat的文件名。 到目前为止,我有 while read file p do if [ "${file:0:1}" != "%" ] then grep -o "$p" $file | wc -l fi done echo -e "\nDone." 但是它不会跳过以%开头的文件。 有任何想法吗?

使用sed在脚本中编辑一个urlstring

我需要在configuration文件中编辑这些string <port>8189</port> <service>127.0.0..1:8190</service> <wan-access>localhost</wan-access> 我努力了 . variables.sh cat config.sh | sed -i.bk \ -e 's/\<^port\>\/'$port'/\<\/\port\>/' \ -e 's/\<^service\>\/'$url'/\<\/\service\>/' \ -e 's/\<^wan-access\>\/'$url2'/\<\/\wan-access\>/' config.sh 在脚本中,variables由variables.sh文件提供。 出来应该是 <port>8787</port> <service>my.domain.com:8190</service> <wan-access>my.realdomain.com</wan-access>