草庐IT

stdout 的 Linux proc/pid/fd 是 11?

使用重定向到文件的标准输出执行脚本。所以/proc/$$/fd/1应该指向那个文件(因为stdoutfileno是1)。但是,该文件的实际fd是11。请解释原因。这是session:$cathello.sh#!/bin/sh-els-l/proc/$$/fd>&2$./hello.sh>/tmp/1total0lrwx------1ngausers64May2822:050->/dev/pts/0lrwx------1ngausers64May2822:051->/dev/pts/0lr-x------1ngausers64May2822:0510->/home/me/hello.sh

linux - socket编程中如何使用select和FD_SET?

我是套接字编程的新手,我无法理解select()和FD_SET()的工作原理。我修改了Beej教程中的一个示例,试图弄明白。我想在for循环中做的是在每次迭代时等待4秒。如果读取可用,我会打印“Akeywaspressed”,如果超时,则打印“Timedout”。然后我会清除集合并重复这个过程9次。但似乎一旦设置了文件描述符0,即使在调用FD_ZERO()和/或FD_CLR()之后,它也永远不会取消设置。换句话说,在我在循环的第一次迭代中按下一个键后,文件描述符被设置用于其余的迭代并且不再等待。所以一定有什么我想念的,但我不知道是什么。#include#include#include#

linux - lsof 列出的管道的 FD 列是什么意思?

我正在使用以下命令获取管道列表:lsof|grepPIPE我想知道FD列的值是什么意思(第5个http://i.imgur.com/KHczptf.png)。我认为r和w分别表示read和write,但是每个后面的数字是什么意思这些字符是什么意思?我知道FD表示文件描述符,我想弄清楚列中显示的值的含义,如3r、16w、20r等。 最佳答案 文件不仅以流的形式打开。其中一些在lsof的手册中列出:FDistheFileDescriptornumberofthefileor:cwdcurrentworkingdirectory;Lnnl

c - 通过fd获取目录路径

我遇到了在Linux中根据文件描述符通过路径引用目录的需求。路径不必是规范的,它只需要是功能性的,这样我就可以将它传递给其他函数。因此,采用与传递给fstatat()这样的函数相同的参数,我需要能够调用像getxattr()这样没有的函数code>f-XYZ-at()变体。到目前为止,我已经提出了这些解决方案;尽管没有一个特别优雅。最简单的解决方案是通过调用openat()然后使用类似fgetxattr()的函数来避免该问题。这有效,但并非在所有情况下都有效。因此需要另一种方法来填补空白。下一个解决方案是查找proc中的信息:if(!access("/proc/self/fd",X_O

c - 增加 FD_SETSIZE 的限制并选择

我想为我的系统增加FD_SETSIZE宏值。有什么办法可以增加FD_SETSIZE这样select就不会失败 最佳答案 根据标准,无法增加FD_SETSIZE。一些程序和库(想到libevent)试图通过为fd_set对象分配额外空间并将大于FD_SETSIZE的值传递给FD_*来解决这个问题宏,但这是一个非常糟糕的主意,因为健壮的实现可能会对参数执行边界检查并在超出范围时中止。我有一个应该始终有效的替代解决方案(即使它不是标准所要求的)。代替单个fd_set对象,分配一个足够大的数组来容纳您需要的最大fd,然后使用FD_SET(f

php - mcrypt_encrypt 到 openssl_encrypt 和 OPENSSL_ZERO_PADDING 问题

对于给定的$key、$message和$iv,我有这个mcrypt_encrypt调用:$string=mcrypt_encrypt(MCRYPT_3DES,$key,$message,MCRYPT_MODE_CBC,$iv);我想将mcrypt_encrypt调用更改为openssl_encrypt调用,以适应future需求。通过$mode='des-ede3-cbc'或$mode='3DES';和$options=true我得到更相似的react,但不完全相同。有没有其他方法调用它以获得完美匹配?我得到这个(base64_encoded)用于lorem-ipsum$message

mysql - sql bool 真值测试 : zero OR null

有没有办法用一个相等运算符同时测试0和NULL?我意识到我可以这样做:WHEREfield=0ORfieldISNULL但如果这可行,我的生活会轻松一百倍:WHERE字段IN(0,NULL)(顺便说一句,为什么这不起作用?)我还阅读了有关在SELECT语句(使用COALESCE)中将NULL转换为0的信息。我正在使用的框架也会让这不愉快。意识到这有点奇怪,但是有什么方法可以用一个WHERE谓词来测试0和NULL吗? 最佳答案 我会使用方便的IFNULL来写那个比较功能:IFNULL(field,0)=0并回答您关于IN函数的问题:"

sql - 如何摆脱 "Error 1329: No data - zero rows fetched, selected, or processed"

我有一个不需要返回任何值的存储过程。它运行平稳,没有任何问题。但是,它在完成运行后会输出一条错误消息:Error:Nodata-zerorowsfetched,selected,orprocessed我怎样才能摆脱这个错误信息?CREATEPROCEDURE`testing_proc`()READSSQLDATABEGINDECLAREdoneINTDEFAULT0;DECLAREl_nameVARCHAR(20);DECLAREmy_curCURSORFORSELECTnameFROMcustomer_tbl;OPENmy_cur;my_cur_loop:LOOPFETCHmy_cu

Android - IllegalStateException : map has zero size

我是一名新手android程序员。让我给出一些上下文。我的项目使用ActionBarSherlock。我有一个包含两个fragment的Activity(Activity1)-一个SherlockListFragment和一个包含谷歌地图MapView(本质上是MapFragment)的SherlockFragment。搜索结果显示在列表fragment和mapfragment中,操作栏选项按钮在列表和map之间切换当前显示的fragment。在列表或搜索结果map中选择一个项目会启动一个新Activity(Activity2),以显示来自所选项目的数据。这个新Activity有一个类

具有代理设置的 Android 模拟器 - 错误 FATAL :.//android/base/sockets/Check failed : isValidFd(fd). fd 1404 max1024

需要使用代理设置运行模拟器,我在命令提示符下使用以下命令来启动模拟器emulator-avdAVD_for_3_7_WVGA_Nexus_One-http-proxyhttp://username:password@IP:Port没有http-proxy开关它工作正常,而使用http-proxy时发生以下错误:FATAL:.//android/base/sockets/SocketWaiter.cpp:89:Checkfailed:isValidFd(fd).fd1404max1024 最佳答案 我遇到了完全相同的问题。幸运的是,有