亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: crazyhadoop
打印 上一主題 下一主題

[Linux] Linux系統(tǒng)開發(fā)那點事兒 分享經(jīng)驗得牛人力作。ǐ@獎名單已公布-2014-5-28) [復(fù)制鏈接]

論壇徽章:
0
51 [報告]
發(fā)表于 2014-05-02 11:01 |只看該作者
學(xué)習(xí)中,正在看文件I/O一章,體會一切即文件的思想

論壇徽章:
0
52 [報告]
發(fā)表于 2014-05-03 03:26 |只看該作者
回復(fù) 48# crazyhadoop

精力有限,工作大部分都是做驅(qū)動,只有調(diào)試驅(qū)動的時候,偶爾寫一點應(yīng)用空間的調(diào)試程序

   

論壇徽章:
26
CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34技術(shù)圖書徽章
日期:2014-07-11 16:27:52辰龍
日期:2014-09-04 13:40:43白羊座
日期:2014-09-09 12:51:55雙子座
日期:2014-09-26 11:00:042014年中國系統(tǒng)架構(gòu)師大會
日期:2014-10-14 15:59:00子鼠
日期:2014-10-23 16:48:23巨蟹座
日期:2014-10-27 08:21:10申猴
日期:2014-12-08 10:16:282015年辭舊歲徽章
日期:2015-03-03 16:54:15NBA常規(guī)賽紀(jì)念章
日期:2015-05-04 22:32:03IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-29 06:20:00
53 [報告]
發(fā)表于 2014-05-05 14:21 |只看該作者
圍觀中..................

求職 : 系統(tǒng)工程師等
論壇徽章:
5
技術(shù)圖書徽章
日期:2014-04-19 22:01:05天蝎座
日期:2014-05-09 13:49:28雙子座
日期:2014-06-16 15:08:042015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:28
54 [報告]
發(fā)表于 2014-05-06 10:36 |只看該作者
本帖最后由 qxhgd 于 2014-05-06 10:37 編輯

開發(fā)中使用tcpdump的時候,遇到過select的副作用引起的故障。
select的原型:
  1. int select(int nfds, fd_set *rdfds, fd_set *wtfds, fd_set *exfds, struct timeval *timeout)
復(fù)制代碼
不同系統(tǒng)上的實現(xiàn):
POSIX.1標(biāo)準(zhǔn)是允許在實現(xiàn)中修改timeval的值的。
FreeBSD、Mac OS X、Solaris里一般維持不變。
Linux的實現(xiàn)中,幾乎一定要被修改的只要配了超時時間,最終或者被修改為0或者被修改為剩余時間。

開始是每隔一定時間發(fā)消息出去,但是間隔在調(diào)用select之后,被修改導(dǎo)致出現(xiàn)問題。

附:Linux上的select的實現(xiàn)分析:
  1. SYSCALL_DEFINE5(select)
  2. {
  3.     if(tvp)            //如果配置了超時時間,select最后一個參數(shù)非NULL的情況
  4.     {
  5.        endtime=xxx;     //修改endtime,有點亂,主要是通過timespec_add_safe實現(xiàn)的。
  6.     }
  7.     ret = core_sys_select(n, inp, outp, exp, to);//真正實現(xiàn)超時的地方
  8.     ret = poll_select_copy_remaining(&end_time, tvp, 1, ret);//注意這個1
  9.    
  10.     return ret;
  11. }


  12. static int poll_select_copy_remaining(struct timespec *end_time, void __user *p,
  13.                                       int timeval, int ret)
  14. {

  15.        if (!end_time->tv_sec && !end_time->tv_nsec) //如果前面tvp為Null,那么endtime沒被賦值,值未定,這里可能就有問題了。
  16.            return ret;
  17.        ktime_get_ts(&rts);                 //獲取當(dāng)前時間
  18.         rts = timespec_sub(*end_time, rts); //計算剩余時間
  19.         if (rts.tv_sec < 0)                 //如果為負(fù)說明已經(jīng)超時
  20.                 rts.tv_sec = rts.tv_nsec = 0; //清0

  21.         if (timeval) {                       //select系統(tǒng)調(diào)用中,timeval為1
  22.                 rtv.tv_sec = rts.tv_sec;      //存的是剩余時間(以endtime為參照物),可能為0,
  23.                 rtv.tv_usec = rts.tv_nsec / NSEC_PER_USEC;

  24.                 if (!copy_to_user(p, &rtv, sizeof(rtv))) //將剩余時間還給用戶態(tài)
  25.                         return ret;

  26.         }

  27. }
復(fù)制代碼

論壇徽章:
0
55 [報告]
發(fā)表于 2014-05-06 19:13 |只看該作者
表示這是c不過關(guān)回復(fù) 6# sxcong


   

論壇徽章:
6
CU大;照
日期:2013-03-14 14:14:08CU大牛徽章
日期:2013-03-14 14:14:26CU大牛徽章
日期:2013-03-14 14:14:29處女座
日期:2014-04-21 11:51:59辰龍
日期:2014-05-12 09:15:10NBA常規(guī)賽紀(jì)念章
日期:2015-05-04 22:32:03
56 [報告]
發(fā)表于 2014-05-12 09:15 |只看該作者
qxhgd 發(fā)表于 2014-05-06 10:36
開發(fā)中使用tcpdump的時候,遇到過select的副作用引起的故障。
select的原型:不同系統(tǒng)上的實現(xiàn):
POSIX.1 ...


這個是啥經(jīng)驗?上來就是一段代碼,讓我等小白情何以堪啊

求職 : 系統(tǒng)工程師等
論壇徽章:
5
技術(shù)圖書徽章
日期:2014-04-19 22:01:05天蝎座
日期:2014-05-09 13:49:28雙子座
日期:2014-06-16 15:08:042015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:28
57 [報告]
發(fā)表于 2014-05-12 09:32 |只看該作者
回復(fù) 56# wang290


    select的副作用,超時時間會被select修改。如果循環(huán)調(diào)用select的話,需要重新對超時時間賦值。

    (*^__^*) 嘻嘻!

論壇徽章:
6
CU大;照
日期:2013-03-14 14:14:08CU大;照
日期:2013-03-14 14:14:26CU大;照
日期:2013-03-14 14:14:29處女座
日期:2014-04-21 11:51:59辰龍
日期:2014-05-12 09:15:10NBA常規(guī)賽紀(jì)念章
日期:2015-05-04 22:32:03
58 [報告]
發(fā)表于 2014-05-12 09:57 |只看該作者
qxhgd 發(fā)表于 2014-05-12 09:32
回復(fù) 56# wang290


不明覺厲

論壇徽章:
0
59 [報告]
發(fā)表于 2014-05-12 11:43 |只看該作者
樣章好像沒法下載
那兩個壓縮包下下來后解壓都顯示錯誤

論壇徽章:
0
60 [報告]
發(fā)表于 2014-05-16 10:36 |只看該作者
回復(fù) 55# 256893

這個和c沒關(guān)系的,是從dos轉(zhuǎn)向linux時對路徑的理解問題。


   
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP