为什么中国大陆要台湾使用繁体字字

新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
白手起家, 积分 139, 距离下一级还需 61 积分
论坛徽章:0
其实关键是不知道打开了多少文件描述符,总不能做个循环,把从3到最大可能的文件描述符全部关一遍吧。
还有,当前用户可打开的最大文件描述符数怎么得到?一个进程可打开的文件描述符数有没有限制?
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
丰衣足食, 积分 825, 距离下一级还需 175 积分
论坛徽章:0
如何把当前打开的所有文件描述符全部关闭?
可以用read()逐个检测文件描述符,然后检查错误代码。如果是EBADF,证明文件描述符无效。
在linux内核2.4上最大能打开的文件描述符为1024。
其它的系统或许有不同的限制。
富足长乐, 积分 5877, 距离下一级还需 2123 积分
论坛徽章:0
如何把当前打开的所有文件描述符全部关闭?
1.想不出别的办法;
2.去/usr/include下查。
白手起家, 积分 139, 距离下一级还需 61 积分
论坛徽章:0
如何把当前打开的所有文件描述符全部关闭?
白手起家, 积分 26, 距离下一级还需 174 积分
论坛徽章:0
如何把当前打开的所有文件描述符全部关闭?
hi,您所需要的数据都是可以得到的,这里给一个事例,不过我是取得当前系统打开的所有文件描述符数目,不正确的地方请指正。
root@sundev:/home/snowing# cat fd_num.c; ./fd_num
#include &stdio.h&;
#include &linux/unistd.h&;
#include &linux/types.h&;
#include &linux/sysctl.h&;
#define SIZE(x) sizeof(x)/sizeof(x[0])
int sys_current_fd_
size_t sys_cfn_
/*可以从/usr/include/linux/sysctl.h中获取该参数具体值*/
int sys_mib_tree[] = { CTL_FS, FS_NRFILE };
int main (void)
& && &&&sys_cfn_lenp = SIZE (sys_mib_tree);
& && &&&if (sysctl (sys_mib_tree, SIZE (sys_mib_tree),
& && && && && & (void *)&sys_current_fd_num, &sys_cfn_lenp, NULL, 0))
& && && && && & perror (&sysctl"
& && &&&else
& && && && && & printf (&system current running fd num: %d\n&, sys_current_fd_num);
& && &&&return 0;
system current running fd num: 697
看一下linux/sysctl.h相关内容,就可以得到你需要的数据,当然获取当前进程
所打开文件描述符数据可以通过
root@sundev:/home/snowing# ls -l /proc/self/fd/& &
lrwx------& & 1 root& &&&root& && && &&&64 Jul 13 19:59 0 -&; /dev/pts/2
lrwx------& & 1 root& &&&root& && && &&&64 Jul 13 19:59 1 -&; /dev/pts/2
lrwx------& & 1 root& &&&root& && && &&&64 Jul 13 19:59 2 -&; /dev/pts/2
lr-x------& & 1 root& &&&root& && && &&&64 Jul 13 19:59 3 -&; /proc/27439/fd
丰衣足食, 积分 825, 距离下一级还需 175 积分
论坛徽章:0
如何把当前打开的所有文件描述符全部关闭?
楼主需要的是一个进程已经打开的文件描述符数量,这一点用sysctl不能直接得到。
还有一个更简便的方法,每个进程对应在/proc目录下都有一个与进程id对应的目录,其中中有一个fs目录,这个fs目录里面就是打开的文件描述符。数一数有几个文件描述符就可以了。
白手起家, 积分 26, 距离下一级还需 174 积分
论坛徽章:0
如何把当前打开的所有文件描述符全部关闭?
当然获取当前进程所打开文件描述符数据可以通过:
root@sundev:/home/snowing# ls -l /proc/self/fd/
lrwx------ 1 root root 64 Jul 13 19:59 0 -&; /dev/pts/2
lrwx------ 1 root root 64 Jul 13 19:59 1 -&; /dev/pts/2
lrwx------ 1 root root 64 Jul 13 19:59 2 -&; /dev/pts/2
lr-x------ 1 root root 64 Jul 13 19:59 3 -&; /proc/27439/fd
我上面提到了呀,如上也可以取得当前打开文件描述符的数量。
稍有积蓄, 积分 202, 距离下一级还需 298 积分
论坛徽章:0
如何把当前打开的所有文件描述符全部关闭?
这样做不是非法了.新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
家境小康, 积分 1326, 距离下一级还需 674 积分
论坛徽章:2
本帖最后由 cdsfiui 于
09:12 编辑
我看网上的创建守护进程的各种例子里面,总是有一步,去关闭所有的fd。
我总感觉这么干没有什么必要。如果我不关闭所有的fd,我就不能是守护进程了吗? 而且守护进程在运行的过程中也会打开文件什么的,fd不又再次打开了吗?
还是一种说法是,守护进程不能有控制台I/O----没有问题,但是我即使不关闭0和1这两个fd,守护进程就不再&守护&了吗?
非常疑惑中... ...
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
白手起家, 积分 157, 距离下一级还需 43 积分
论坛徽章:6
我看apue上是这样说的
在编写守护进程程序时需要遵循一些基本规则,以便防止产生并不需要的交互作用。
其中基本规则的第五条这样写到:
(5)关闭不需要的文件描述符。这使守护进程不再持有从其父进程继承来的某些文件描述符(父进程可能是shell进程,或某个其他进程)。
家境小康, 积分 1326, 距离下一级还需 674 积分
论坛徽章:2
lxy 发表于
我看apue上是这样说的
在编写守护进程程序时需要遵循一些基本规则,以便防止产生并不需要的交互作用。
可是,通常我们产生一个守护进程的时候都需要fork两次,守护进程的父进程都是退出的啊,所以根本就谈不上可能又任何不需要的互操作了。
白手起家, 积分 157, 距离下一级还需 43 积分
论坛徽章:6
fork之后子进程是会继承父进程的文件描述符的,但这些文件描述符在守护进程中是多余的。至于交互的问题我就想不清楚了。但我觉得多余的文件描述符是应该关闭的。不然守护进程一直运行而占有文件描述符是对资源的一种浪费
家境小康, 积分 1326, 距离下一级还需 674 积分
论坛徽章:2
lxy 发表于
回复 3# cdsfiui
fork之后子进程是会继承父进程的文件描述符的,但这些文件描述符在守护进程中是多余的 ...
你的意思是说,文件描述符本身是系统资源,子进程不释放的话,引用计数一直存在,资源也就一直被锁定吗?
有没有什么办法可以看到或者编程的到,一个fd正在被几个进程所引用,它的引用计数是多少?
白手起家, 积分 157, 距离下一级还需 43 积分
论坛徽章:6
我觉得单个的文件描述符到不怎么占资源,关键是每一个文件描述符都在内核中对应一个file结构和inode结构,因为是守护进程所以系统在运行过程中始终要维护这些内核中的数据结构,这样比较占资源吧。这只是我个人的想法,毕竟没有写书的大神那么有经验,希望对你有启发2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。

我要回帖

更多关于 line中国大陆不能使用 的文章

 

随机推荐