Articles of Linux操作系统

使用散列函数

我正在用LINUX做我的功课,我有一些关于散列函数的问题。 当我把*mnemonic_nameinput到像'ADD'这样'ADD'string时, find_index在每次编译时都是随机的。 你能解释这个问题并为我解决吗? 这是我的代码: 251 int symtab_finder(char *mnemonic_name) 252 { 253 node *temp; 254 255 int find_index = op_find(mnemonic_name); 256 int find_flag = 0; 257 258 temp = optabl[find_index].head; 259 260 while(temp) 261 { 262 if((strcmp(temp->mnemonic_name,mnemonic_name)==0)) 263 { 264 find_flag = 1; 265 } 266 temp = temp->next; 267 268 } 269 if(find_flag == […]

静态链接openssl到sqlcipher

我已经为Linux构build了sqlcipher,但是依赖于openssl。 我想configurationsqlcipher工作,没有外部openssl库通过静态链接。 我用这个命令configurationsqlcipher ./configure –prefix=/home/admin/Downloads/qt-everywhere-opensource-src-4.8.0/src/plugins/sqldrivers/sqlcipher/ –disable-shared –enable-static –enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="/usr/lib64/libcrypto.a" make 之后我得到了下一个string: /libtool –mode=link gcc -DSQLITE_HAS_CODEC -DSQLITE_OS_UNIX=1 -I. -I./src -I./ext/rtree -D_HAVE_SQLITE_CONFIG_H -DNDEBUG -I/usr/include -DSQLITE_THREADSAFE=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 /usr/lib64/libcrypto.a -DHAVE_READLINE=0 \ -o sqlite3 ./src/shell.c libsqlite3.la \ -lpthread -rpath "/home/admin/Downloads/qt-everywhere-opensource-src-4.8.0/src/plugins/sqldrivers/sqlcipher/lib" libtool: link: gcc -DSQLITE_HAS_CODEC -DSQLITE_OS_UNIX=1 -I. -I./src -I./ext/rtree -D_HAVE_SQLITE_CONFIG_H -DNDEBUG -I/usr/include -DSQLITE_THREADSAFE=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DHAVE_READLINE=0 -o sqlite3 ./src/shell.c /usr/lib64/libcrypto.a ./.libs/libsqlite3.a […]

使用外部redis服务器来testingtcl脚本

我正在运行Ubuntu 11.10。 我正在尝试使用外部Redis服务器运行TCLtesting脚本。 使用以下内容: sb@sb-laptop:~/Redis/redis$ tclsh tests/test_helper.tcl –host 192.168.1.130 –port 6379 获取以下错误: Testing unit/type/list [exception]: Executing test client: couldn't open socket: connection refused. couldn't open socket: connection refused while executing "socket $server $port" (procedure "redis" line 2) invoked from within "redis $::host $::port" (procedure "start_server" line 9) invoked from within "start_server {tags {"protocol"}} { test […]

Java linux / unix命令

我有一个自定义的java可执行jar file – mytestapp.jar ,执行一些基本的检查,如系统名称,IP地址,规范名称,正常运行时间等,并在屏幕上自定义共振峰打印相同。 该程序工作正常,我得到所需的和预期出来,当我运行 java -jar /mytestapp/mytestapp.jar 而不是每次运行上述命令,我已经创build了一个文件myappinfo并在文件中添加上述命令并保存它。 将/mytestapp添加到PATHvariables中。 当我做echo $PATH ,它显示echo $PATH /mytestapp 。 我将myappinfo的文件权限设置为755并使其可执行。 现在,当我从任何文件夹运行命令myappinfo我得到相同的输出。 现在的要求是,我想使这个文件 – myappinfo成为一个二进制文件,不会被任何人使用任何编辑器程序(如vi,nano等)进行更改或检查。 任何build议做到这一点?

linux makefile链接错误__line__

我得到以下错误在Linux“未定义的引用__line__ 。我知道C有隐含的macros__LINE__ 。在代码__line__分配__LINE__为 extern int __line__; LDF(__line__ = __LINE__); 所以__line__是一个variables不是macros,在这里被赋值为__LINE__ 。 这里是extern int ,所以它应该被声明为int __line__ 。 但是我没有看到任何标题或c文件_line _is声明。 此外,这个错误不是在编译.c文件时,而是在链接.o文件的时候。 这个错误不是在UNIX中。 另外,在链接libgen时,libposix4库也是链接的。 这些库只在UNIX中不在LINUX中,我假设int __line__; 存在于这些库中的某个地方,或者我该如何解决这个错误?

在使用读写锁的pthread散列表中读取性能差

我已经把一个简单的关键值存储放在一起,它说的是Redis协议的一个子集。 它使用Linux上的pthreads来共享哈希表; 我使用pthreads rwlocks来pipe理对这个表的访问。 我一直在使用Redis基准testing工具testingKV商店。 有了一个客户端,我可以每秒做大约2500次SET操作。 但是,它只能做到每秒25个GET。 我期望别的方法,所以这让我感到惊讶。 它在某种程度上可以扩展,所以如果我扔10个客户端,我会得到每秒近9000个SET和每秒250个GET。 我的GET代码很简单, 我locking表,find合适的散列表位置,并检查链接列表中的匹配键。 对于GET,当我完成时,我使用pthread_rwlock_rdlock和pthread_rwlock_unlock 。 对于SET,我使用pthread_rwlock_wrlock和pthread_rwlock_unlock 。 SET比GET复杂得多。 我还使用共享内存进程和自己的读/写锁实现了Plan 9的代码。 在那里,GET几乎和SET一样快,而不是慢100倍。 这让我觉得我的哈希表代码可能是好的; 我使用两个操作系统完全相同的哈希表代码,我只是使用#defines为每个操作系统select合适的锁(在两种情况下,接口是相同的,幸运的!)。 我对pthreads不是很有经验。 谁能帮我弄清楚为什么我的performance太糟糕了? (注意:这不是一个高性能的KV商店,它是一个天真的书面testing应用程序/基准testing程序,通过为每个客户端分离一个新的线程,以最简单的方法处理请求)

用bash从多个文本文件中提取列

我正试图从多个文本文件(3000个文件)中提取列。 我的文本文件示例如下所示。 res ABS sum SER A 1 161.15 138.3 CYS A 2 66.65 49.6 PRO A 3 21.48 15.8 ALA A 4 77.68 72.0 ILE A 5 15.70 9.0 HIS A 6 10.88 5.9 如果总和(最后一列)> 25,我想打印1)resnames(第一列)。 2)我想将输出存储到一个文件3)我想添加一个新的列与输出文件的名称的txt文件从中提取数据,也需要打印总数resnames(从所有的文本文件只有如果总和> 25) 我想获得以下输出 SER AA.txt CYS AA.txt ALA AA.txt SER BB.txt Total numberof SER- 2 Total number of […]

如何使Perl Tk :: Frame看起来像一个LCD?

我想要一个Tk :: Frame看起来像一个LCD。 在框架内我有一个Tk ::标签和一个Tk ::条目 。 有谁知道一个字体名称或方法来做到这一点,也许是一个Perl模块?

关于LINUX中的分段错误

我正在LINUX里做一个开发SIC / XE汇编程序的作业。 当我编写代码时,我遇到了一些错误,但是我不知道为什么会发生这种情况。 你能为我解释为什么会出现这个问题吗? 下面的代码显示了带有标记的'test.asm'文件。 178 printf("token1: %s \t",token1); 179 printf("token2: %s \t",token2); 180 printf("token3: %s \t",token3); 181 printf("token4: %s \t",token4); 182 printf("ss\nss"); 据此,特别是“ss \ nss”声明,我预计打印结果如下。 sstoken1: LDT token2: LENGTH token3: (null) token4: (null) ss sstoken1: WLOOP token2: TD token3: OUTPUT token4: (null) ss ss 但是,当我运行这个程序到最后,我遇到了分段错误,遇到了奇怪的情况。 sstoken1: OUTPUT token2: BYTE token3: X'05' token4: (null) […]

Python的PyInstaller的Ubuntu的烦恼

我一直在寻找如何使用pyinstaller的教程,并找不到我可以遵循的一个。 我一直在研究这个好几个小时,找不到任何帮助我的东西。 我正在使用Linux,并想知道是否有人可以帮助我的forms乞讨,因为没有一个部分我明白这一点。 我也有三个文件组成一个程序,并且也使用了Tkinter,所以我不知道这是否会让它变得更加困难。