草庐IT

c - 理解gnu libc的strcmp函数

这是strcmp我在glibc中找到的函数:intSTRCMP(constchar*p1,constchar*p2){constunsignedchar*s1=(constunsignedchar*)p1;constunsignedchar*s2=(constunsignedchar*)p2;unsignedcharc1,c2;do{c1=(unsignedchar)*s1++;c2=(unsignedchar)*s2++;if(c1=='\0')returnc1-c2;}while(c1==c2);returnc1-c2;}这是一个非常简单的函数,其中while的主体同修c1和c2值

linux - 使用共享库运送 GNU/Linux Firefox 插件(用于没有 root 访问权限的安装)

该应用程序是一个Firefox插件(从$HOME/.mozilla/plugins加载),因此设置LD_LIBRARY_PATH的包装脚本不是一个简单的选择。据我所知,RPATH不能引用$HOME,只能是绝对路径。Firefox尝试从~/.mozilla/pluginsdlopen它的插件但失败了(因为它依赖于安装在用户主目录中某处的共享库)。修改Firefox菜单项以提供围绕Firefox的包装器(使用LD_LIBRARY_PATH)太老套了。安装程序脚本应该做什么(没有root访问权限)来制作依赖于共享库的标准firefox加载插件?我是否应该尝试将所有内容嵌入到.so中以消除依赖

linux - BASH...GNU 并行

绞尽脑汁并搜索Google以找到一种方法来获取带有超时选项的sem命令,以便在超时时给我一个退出代码。它不必通过sem,这只是一个痛苦,因为我最终需要根据以下情况以不同方式应用操作:我从被调用的脚本中得到了OK响应我从被调用的脚本中得到任何结果,但一切正常调用超时信号量在这种情况下用于限制对脚本的调用,我将文件名列表传递给该脚本以用于传出消息队列。正如您在下面的粗略测试示例中看到的那样,我能够处理前两种情况,但我终生无法从超时终止的进程中获得任何我可以使用的输出(即outputtest.sh有sleep6;echotestings)sem--jobs3--timeout3-u\'run

python - Python 在每个 GNU/Linux 发行版上都有吗?

我想知道每个G/L发行版上是否预装了Python。为什么它在GNU/Linux上如此流行而在Windows上却不那么流行? 最佳答案 嗯,python并没有出现在所有的GNU/Linux发行版中,但出现在大多数流行的Linux家庭用户发行版(例如Ubuntu和FedoraCore)中,可能是因为Gnome桌面环境和KDE的大部分应用程序都使用python2.5+(还不是python3)解释器。由于python几乎从一开始就集成到系统/环境中,因此linux用户觉得用python编程很容易。但这是一个主观意见,因为Java在Linux

php - 在 x86_64 GNU/Linux 上升级 PEAR

当我运行sudopearupgradepear时,它以以下错误结束:ERROR:unabletounpack/tmp/tmpsozA4Q/Structures_Graph-1.0.4.tgz有没有人遇到过这样的事情,你对如何解决这个问题有什么建议吗?它让我彻夜难眠。 最佳答案 通常此错误是由于非常过时的pear版本导致的,它甚至无法再与pear服务器通信并下载HTML页面而不是真正的存档。要解决此问题,您需要手动更新pear。wgethttp://pear.php.net/go-pear.pharphpgo-pear.phar并按照

linux - 如何让 GNU screen 在登录时自动启动?

我每天有几台Linux服务器要工作,我在每台服务器上都有一个GNUscreensession以保持工作进度。问题是每次登录时我都厌倦了screen-Rdwork问题,有什么办法可以解决这个问题吗?或者任何解决方法?阅读@Sami的回答,我对$STYshell变量和found进行了一些搜索。这个:STY:Alternatesocketname.Ifscreenisinvoked,andtheenvironmentvariableSTYisset,thenitcreatesonlyawindowintherunningscreensessionratherthanstartinganews

linux - 将 GNU make 生成的文件存储在别处

我如何在别处存储GNUmake&configure文件?我有一个正在处理的项目,我使用以下方法进行编译:./configure--prefix=/usr&&make&&su-c'makeinstall'问题是我不想污染当前文件夹,这是一个svn/git/hg/whatever沙箱,其中包含该命令生成的文件。我想将这些文件放在一个单独的位置。我不知道它是否相似,但是当我从源代码编译linux内核时,我可以通过将“O”选项传递给“make”来指定输出的位置,如下所示:makeO=/home/user/linux-output 最佳答案

linux - 适用于 GNU/Linux 的 Depends.exe

我需要为GNU/Linux分发一个二进制文件...在Windows上,我可以运行一个名为“depends.exe”的实用程序来验证该文件具有的所有依赖项,因此我将能够知道该文件附带什么,以及我如何对GNU/Linux做同样的事情?澄清:我并不是说完全分发它(除非它是某个永远不会产生问题的特定库,例如...libThatOnlyMySoftwareUseVersion0.00042895.08421thatnoonehasKinda认为用户会需要...) 最佳答案 您在Linux上寻找的实用程序称为ldd。但是,帮您的用户一个忙,不要

c - 如何在 Linux 中正确安装 gsl 库?

我在安装GNU科学库(gsl)时遇到问题。我把这个包放在我的桌面上,并根据包含的文档执行了“./configure”、“make”和“sudomakeinstall”。我检查了/usr/local/include目录,那里有一个新创建的“gsl”文件夹。但是当我尝试使用库提供的函数时,出现了“undefinedreferenceto'gsl_sf_beta_inc'”的错误。这是我的代码。#include#includeintmain(void){doublea=20;doubleb=1000;doublex=0.5;doubleresult=gsl_sf_beta_inc(a,b,x

c - 在 GNU/Linux 上链接插件时如何巧妙地检测 undefined symbol ?

我有一个程序foo可以通过dlopen()加载插件。我正在编写一个这样的插件foobar,它可以连接第三方库libfoo提供的功能。在Linux上,我正在像这样构建foobar:gcc-fpic-c-ofoobar.ofoobar.cgcc-fpic-shared-ofoobar.sofoobar.o-lbar到目前为止一切顺利。问题是这不会检测undefinedsymbol,例如由于代码中的错误或头文件和库之间的不匹配。链接成功,您只会在稍后加载插件或调用插件中的某些内容时遇到错误(取决于dlopen()标志)。要检测共享库中的undefinedsymbol,通常会使用-Wl,-z,