草庐IT

SO_TIMEOUT

全部标签

linux - SO_PEERCRED 与 SCM_CREDENTIALS - 为什么两者都有?

SO_PEERCRED是获取连接的AF_UNIX流套接字的pid/uid/gid的简单方法,SCM_CREDENTIALS或多或少相同,但更复杂(各种辅助消息)。Linkstoexampleshowingbothways.为什么有两种方法可以获取或多或少相同的信息?为什么更舒服的SO_PEERCRED没有列在unix(7)联机帮助页中?哪个在实际应用中使用较多?我应该使用什么? 最佳答案 如果我没理解错的话,两者之间有细微的差别。SO_PEERCRED检索对等进程的凭据,无需与对等进程进行任何交互。相反,SCM_CREDENTIAL

linux - wget 一起使用 --timeout 和 --tries

您希望此命令在退出前需要多长时间?wget--timeout=1--tries=2"http://www.google.com:81/not-there"我希望超时为1秒,2次尝试意味着2秒,但它需要6.025秒wget--timeout=1--tries=2"http://www.google.com:81/not-there"--2017-04-2716:49:12--http://www.google.com:81/not-thereResolvingwww.google.com(www.google.com)...209.85.203.105,209.85.203.103,20

linux - libpulse.so.0 : cannot open shared object file: No such file or directory

我在尝试安装服务器时遇到此错误。libpulse.so.0:无法打开共享对象文件:没有那个文件或目录我运行了一个ldd,并且有libpulse.so.0,但是脚本不支持它root@mas:~/Velneo-vServer#sudosh./vServer.sh-i./vServer:errorwhileloadingsharedlibraries:libpulse.so.0:cannotopensharedobjectfile:Nosuchfileordirectoryroot@mas:~/Velneo-vServer#ldd`whichpulseaudio`linux-vdso.so.

linux - 静态库 (.a) 和共享库 (.so) 之间的文件格式差异?

我知道有很多关于共享库和静态库的用例的问题,这个问题与此无关。我问的是磁盘上存储的文件格式的差异。为什么问题是,两者之间有什么区别?还是它们完全相同,只是用法不同?我相信它们是不一样的,因为在共享库上运行“nm”需要-D标志。显然,它需要做一些不同的事情。为什么?它们都是ELF文件吗?唯一的区别是共享库可以包含一些依赖路径吗? 最佳答案 静态库,例如libfoo.a不是任何类型的可执行文件。它只是unixarformat中的索引存档其他文件恰好是ELF目标文件。静态库的创建方式与任何存档一样:arcrslibfoo.aobjfile

linux - ld-linux.so 以什么顺序搜索共享库?

当ld-linux解析一个符号时,它会以特定顺序搜索共享库,并在找到具有匹配符号的共享库时停止。是什么决定了它在库中搜索的顺序?如果未解析的符号在主程序中或在另一个共享库中,会有什么不同吗?如何在不调用ldd等外部​​程序的情况下以编程方式确定搜索顺序? 最佳答案 来自http://www.muppetlabs.com/~breadbox/software/ELF.txt(如sarnold所述):Whenresolvingsymbolicreferences,thedynamiclinkerexaminesthesymboltabl

linux - .so文件和.a文件的区别?

我看过.so是一个动态库文件,.a是一个静态库文件。在构建openssl时,我选择了./Configureno-shared并且它创建了很多.a文件。所以,我的问题是像apache这样的其他包是否能够使用来自openssl的.a文件?例如libcrypto.a,如果我完全走错了路,请有人给我建议。 最佳答案 基本上,静态库可以在链接时被编译到另一个应用程序。在您的示例中,Apache可以在构建期间使用libcrypto.a并将其包含在Apachehttpd应用程序中。动态.so库可以在运行时加载和卸载,您可以更灵活地更改Apache

c - 绑定(bind)与 SO_BINDTODEVICE 套接字

我在linux(ubuntu13.10)上运行一个项目,它使用连接到设备的原始套接字。这是我的代码:/*builedsocket*/if((sockfd=socket(PF_PACKET,SOCK_RAW,htons(ETH_P_ALL)))==-1){perror("listener:socket");return-1;}/*Setinterfacetopromiscuousmode*/strncpy(ifopts.ifr_name,ifName,IFNAMSIZ-1);ioctl(sockfd,SIOCGIFFLAGS,&ifopts);ifopts.ifr_flags|=IFF_

c - 为什么我们在 Linux 中需要 .so.1 文件?

在Linux中,对于共享库,我通常会看到一个库的.so、.so.1和.so.1.0文件。例如库test应该由libtest.solibtest.so.1libtest.so.1.0文件呈现。据我了解,.so.1.0包含真实数据;.so链接到.so.1.0并用于链接。但我不明白.so.1文件的用途。有人可以澄清.so.1文件的用途吗?谢谢。 最佳答案 假设我们正在谈论libtest.如果环顾四周,您会看到libtest.so,这是指向libtest.so.1的链接,它又链接到libtest.so.1.5.使用libtest的可执行文件

linux - 使用 dlopen() 访问 .so 库会抛出 undefined symbol 错误

我正在尝试将相机库.so文件动态加载到Linux可执行文件中,以访问简单的相机功能。我试图通过以下方式做到这一点:if((newHandle=dlopen("./libCamera.so",RTLD_LAZY|RTLD_GLOBAL))==NULL){printf("Couldnotopenfile:%s\n",dlerror());return1;}但是这失败了,我收到以下输出:“无法打开文件:libCamera.so:undefinedsymbol:ZTVN10_cxxabiv117__class_type_infoE”我如何找出它所依赖的符号? 最佳答

linux - linux 上的 matlab 无法绘制任何东西(无法加载 libstdc++.so.6 : version `CXXABI_1.3.8' not found)

我在Fedora24上运行matlabR2016a,但无法使用plot命令。这是我得到的错误:ErrorusinggcaWhilesettingthe'Parent'propertyof'Axes':Can'tload'/usr/local/MATLAB/R2016a/bin/glnxa64/libmwosgserver.so':/usr/local/MATLAB/R2016a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6:version'CXXABI_1.3.8'notfound(requiredby/lib64/libGLU.so.