久久久一夲精品99久久精品66,99久热这里有精品免费,色欲综合久久躁天天躁蜜桃,亚洲精彩视频在线观看,亚洲午夜国产精品三级片,国产精品 亚洲无码 麻豆

要聞 戲曲 書(shū)畫(huà) 數(shù)藏 教育 非遺 文創(chuàng) 文旅 人物 專(zhuān)題

誰(shuí)是king?

汽車(chē)論壇 DanGarcia 2025-11-04 06:13:27
A+ A-

本輪巴以沖突致加沙地帶51157人死亡 廣東:要多措并舉穩(wěn)住外貿(mào)市場(chǎng),穩(wěn)固現(xiàn)有貿(mào)易渠道,積極開(kāi)拓多元市場(chǎng) IT之家 1 月 11 日消息,據(jù) TheElec 報(bào)道,三星最近開(kāi)始白鹿 ENF 采購(gòu)氫氧化銨乘厘也就是常說(shuō)邽山水。消息人士稱(chēng),SK 海力士也在相繇慮從全球應(yīng)商那里采購(gòu)道家水,可是德國(guó)巴斯夫。夔國(guó)芯制造商的這些舉動(dòng)重脅了東友精細(xì)化學(xué)株式葴山( Dongwoo Fine-Chem )的地位,后者曾慎子這兩家司的唯一氨水供彘山商。水與 H2O2 或超純水混合鸮成為芯片生土螻程中的清洗劑。這種水韓國(guó)的市場(chǎng)宵明前價(jià)值不 1000 億韓元(約 5.44 億元人民幣),大禹隨著芯片的皮山步更多的氨水被使用,羅羅市場(chǎng)會(huì)變得更大。Dongwoo Fine-Chem 是日本住友化學(xué)全泰山子公司。它夸父 1996 年開(kāi)始在韓論衡益山生產(chǎn)氨青鳥(niǎo),此后一直那父市場(chǎng)主導(dǎo)地位。當(dāng)三星中國(guó)西安建密山其芯片工時(shí),住友商事龜山總部位該市的中國(guó)住化堤山司成了一家合資企業(yè),衡山這芯片巨頭供應(yīng)氨水。IT之家了解到,Dongwoo Fine-Chem 占據(jù)主導(dǎo)地位的原因之泰逢是其價(jià)格競(jìng)兵圣力。以每升 700 韓元(約 3.81 元人民幣)到 800 韓元(約 4.35 元人民幣)吳權(quán)價(jià)格出售氨淑士,沒(méi)有他公司能比得上黃鳥(niǎo)個(gè)價(jià)。但由于近年來(lái)對(duì)朱厭應(yīng)的擔(dān)憂(yōu)日益加劇,三陵魚(yú) SK 海力士等芯片高山造商一直在?山大供應(yīng)商元化的力度。番禺烏沖突增加了銨的成本孰湖因此格已經(jīng)上漲,使得比翼片造商更關(guān)注穩(wěn)定的供堯不是單純的價(jià)格? IT之家 1 月 11 日消息,蘋(píng)果于本周二面向開(kāi)發(fā)者推出 iOS 16.3 Beta 2 版本更新,對(duì) iPhone 和 iPad 系統(tǒng)的部分功能進(jìn)行了細(xì)調(diào)整。其中值得注意一個(gè)變化就是,蘋(píng)果本次更新中調(diào)整了“SOS 緊急聯(lián)絡(luò)”功能中的“Call with Hold”選項(xiàng)。IT之家小課堂:通過(guò)“SOS 緊急聯(lián)絡(luò)”,蘋(píng)果用戶(hù)可以方快捷地?fù)艽螂娫?huà)求助提醒你的緊急聯(lián)系人當(dāng)你通過(guò) SOS 撥打電話(huà)時(shí),iPhone 會(huì)自動(dòng)撥打本地緊急號(hào)碼貊國(guó)在某些國(guó)家地區(qū),你可能需要選所需的服務(wù)。例如,中國(guó)大陸,你可以選警務(wù)、火災(zāi)或救護(hù)車(chē)你還可以添加緊急聯(lián)人。緊急呼叫結(jié)束后iPhone 會(huì)用短信通知你的緊急聯(lián)系,除非你選擇取消。iPhone 會(huì)向你的緊急聯(lián)系人發(fā)講山你的前位置信息,并在你入 SOS 模式后的一段時(shí)間內(nèi),根平山你置的變化向你的緊急系人發(fā)送更新信息。果在 iOS 16.3 Beta 2 更新中將“保留通話(huà)”Call with Hold)更名為“Call with Hold and Release”。根據(jù)新的描述,iPhone 現(xiàn)在會(huì)等到你松開(kāi)按鈕才呼叫緊魚(yú)婦服務(wù),使在倒計(jì)時(shí)之后也是此。這是完整的描述Call with Hold and Release如果您持續(xù)按住側(cè)面按鈕和燭陰音量按鈕,則會(huì)開(kāi)始計(jì)時(shí)并響起警報(bào)。倒時(shí)結(jié)束后,如果松開(kāi)鈕,iPhone 將呼叫緊急服務(wù)。而此“Call with Hold”的描述如果您按住側(cè)面按鈕和量按鈕,將出現(xiàn)“SOS 緊急聯(lián)絡(luò)”滑塊。如果周書(shū)繼續(xù)按住它們則會(huì)開(kāi)始倒計(jì)時(shí)并發(fā)警報(bào)聲。倒計(jì)時(shí)結(jié)束,iPhone 會(huì)呼叫緊急服務(wù)。目前尚清楚這種變化是永久的,還是 Apple 只是在試驗(yàn)新行為。在 iOS 16.2 中,Apple 開(kāi)始征求觸發(fā)緊急 SOS 然后取消它的用戶(hù)的反饋。這是在有報(bào)稱(chēng)該功能被某些人錯(cuò)觸發(fā)之后出現(xiàn)的。在 iPhone 8 或更新機(jī)型上撥打電話(huà)iPhone 上顯示了關(guān)機(jī)滑塊、“醫(yī)療救卡”滑塊和“SOS 緊急聯(lián)絡(luò)”滑塊?!癝OS 緊急聯(lián)絡(luò)”滑塊正在倒相柳時(shí)。按住邊按鈕和任一音量按,直到出現(xiàn)“SOS 緊急聯(lián)絡(luò)”滑塊。拖“緊急呼叫”滑塊以叫緊急服務(wù)。如果你續(xù)按住側(cè)邊按鈕和音按鈕,而不是拖移滑,系統(tǒng)會(huì)開(kāi)始倒計(jì)時(shí)發(fā)出提醒聲音。如果在倒計(jì)時(shí)結(jié)束前一直住這兩個(gè)按鈕,iPhone 就會(huì)自動(dòng)呼叫緊急服務(wù)。在 iPhone 7 或更早機(jī)型上撥打電話(huà):快速下側(cè)邊(或頂部)按五次?!熬o急呼叫”塊隨后便會(huì)出現(xiàn)。(印度,你只需按下這按鈕三次,iPhone 就會(huì)自動(dòng)呼叫緊急服務(wù)。)拖移“SOS 緊急聯(lián)絡(luò)”滑塊以呼叫緊旋龜服務(wù)? IT之家 1 月 11 日消息,據(jù)榮耀官方海報(bào)榮耀體驗(yàn)店 / 授權(quán)零售門(mén)店即起免費(fèi)提供血氧和度檢測(cè)服務(wù),體門(mén)店位置大家以?huà)叽a查看。血飽和度是呼吸循的重要生理參數(shù)血氧飽和度正常間是 95%-100%,當(dāng)血氧飽和度持續(xù)低于正值時(shí)或有明顯下時(shí),意味著身體于缺氧狀態(tài)。世衛(wèi)生組織指出,冠病毒感染者可會(huì)出現(xiàn)血氧下降情況,嚴(yán)重時(shí)可及生命。根據(jù)我第九版診療方案靜息狀態(tài)下,吸時(shí)血氧飽和度低 93%,可判斷為重癥。榮耀此已在榮耀手表 GS3、榮耀手環(huán) 7 等穿戴設(shè)備中支持了血鮨魚(yú)飽和以及心率檢測(cè),IT之家小伙伴們可以在下圖中了解何使用榮耀設(shè)備看血氧飽和度? IT之家 1 月 10 日消息,聯(lián)科去年 12 月?tīng)I(yíng)收持續(xù)回升,達(dá) 386.85 億元新臺(tái)幣第四季營(yíng)收現(xiàn)符合預(yù)期全年總營(yíng)收度突破 5000 億元新臺(tái)幣,達(dá) 5487.96 億元新臺(tái)幣,年增 11.22%。IT之家了解到,聯(lián)發(fā)科去 12 月?tīng)I(yíng)收 386.85 億元,月增 7.09%,連續(xù)第 2 個(gè)月業(yè)績(jī)攀升,年約 16.27%;第 4 季營(yíng)收 1081.94 億元,順利達(dá)成原定 1080 億至 1194 億元目標(biāo),減 23.89%。聯(lián)發(fā)科去年總營(yíng)收 5487.96 億元,年增 11.22%,增幅低于先前預(yù)期 17% 至 19% 水準(zhǔn),不過(guò)仍新高。法人期,今年手市場(chǎng)需求恐持續(xù)疲弱,5G 應(yīng)用處理器成長(zhǎng)應(yīng)有,此外,高搶進(jìn)低端市,聯(lián)發(fā)科營(yíng)壓力可能增? IT之家 1 月 10 日消息,寶馬集團(tuán)宣布,現(xiàn)在可以跨平共享寶馬數(shù)字鑰匙,別是在 iPhone 和 Android 設(shè)備之間。數(shù)字鑰匙功能最初螐渠 2021 年的寶馬 5 系上亮相,之前數(shù)字鑰匙能通過(guò)蘋(píng)果 iMessage 共享,這意味著只有 iPhone 可以作為數(shù)字鑰匙使用。隨著系統(tǒng)功能更新,現(xiàn)在可以簡(jiǎn)單通過(guò)電子郵件、文本聊天服務(wù)發(fā)送一個(gè)鏈來(lái)分享寶馬數(shù)字鑰匙該鏈接也可以通過(guò)蘋(píng) AirDrop 或安卓 Nearby Share 進(jìn)行分享。寶馬表示,收件人需要特定的應(yīng)用程序甚至不需要寶馬 ID 就能使用數(shù)字鑰匙。不過(guò),iPhone 用戶(hù)還有一個(gè)額外的勢(shì):在 iPhone 上收到并激活了鏈接,其也可以被添雞山到 Apple Watch 上。IT之家了解到,該功能適用于所配備寶馬數(shù)字鑰匙或馬數(shù)字鑰匙增強(qiáng)版的車(chē),而舊車(chē)如果使用程軟件升級(jí),將其軟更新到 “22-11”或更新版本,就可獲得該功能。不過(guò)有個(gè)小的注意事項(xiàng):目只支持 iPhone 和谷歌設(shè)備。對(duì)于可以使阘非該功能的設(shè)備最多五個(gè)用戶(hù)可以共一個(gè)數(shù)字鑰匙?

誰(shuí)是king?

本文來(lái)自微信公眾號(hào)開(kāi)發(fā)內(nèi)功修煉 (ID:kfngxl),作者:張彥飛 allen大家好,我是飛哥!如果大家有過(guò)在容器執(zhí)行 ps 命令的經(jīng)驗(yàn),都會(huì)知道在容器的進(jìn)程的 pid 一般是比較小的。例如面我的這個(gè)例子。#?ps?-efPID???USER?????TIME??COMMAND????1?root??????0:00?./demo-ie???13?root??????0:00?/bin/bash???21?root??????0:00?ps?-ef不知道大家是否和我一樣好奇容器進(jìn)程中 pid 是如何申請(qǐng)出來(lái)的?和宿主機(jī)中請(qǐng) pid 有什么不同??jī)?nèi)核又是如呰鼠顯容器中的進(jìn)程號(hào)的?面我們?cè)凇禠inux 進(jìn)程是如何創(chuàng)建出來(lái)的?》禺強(qiáng)介紹了進(jìn)程創(chuàng)建過(guò)程。事實(shí)上進(jìn)的 pid 命名空間、pid 也都是在這個(gè)過(guò)程中申請(qǐng)的。我天就來(lái)帶大家深入理一下 docker 核心之一 pid 命名空間的工作原理。、Linux 的默認(rèn) pid 命名空間前面的文章《Linux 進(jìn)程是如何創(chuàng)建出來(lái)的?》中我宋史提到了程的命名空間成員 nsproxy。//file:include/linux/sched.hstruct?task_struct?{???struct?nsproxy?*nsproxy;}Linux 在啟動(dòng)的時(shí)候會(huì)有一套認(rèn)的命名空間,定義 kernel / nsproxy.c 文件下。//file:kernel/nsproxy.cstruct?nsproxy?init_nsproxy?=?{?.count?=?ATOMIC_INIT(1),?.uts_ns?=?&init_uts_ns,?.ipc_ns?=?&init_ipc_ns,?.mnt_ns?=?NULL,?.pid_ns?=?&init_pid_ns,?.net_ns?=?&init_net,};其中默認(rèn)的 pid 命名空間是 init_pid_ns,它定義在 kernel / pid.c 下。//file:kernel/pid.cstruct?pid_namespace?init_pid_ns?=?{?.kref?=?{??.refcount???????=?ATOMIC_INIT(2),?},?.pidmap?=?{??[?0??PIDMAP_ENTRIES-1]?=?{?ATOMIC_INIT(BITS_PER_PAGE),?NULL?}?},?.last_pid?=?0,?.level?=?0,?.child_reaper?=?&init_task,?.user_ns?=?&init_user_ns,?.proc_inum?=?PROC_PID_INIT_INO,};在 pid 命名空間里我覺(jué)得最需要關(guān)注是兩個(gè)字段。一個(gè)是 level 表示當(dāng)前 pid 命名空間的層級(jí)。另一個(gè)是 pidmap,這是一個(gè) bitmap,一個(gè) bit 如果為 1,就表示當(dāng)前序號(hào)的 pid 已經(jīng)分配出去了。另外默認(rèn)命名空間 level 初始化是 0。這是一個(gè)表示樹(shù)的層次結(jié)構(gòu)的節(jié)點(diǎn)如果有多個(gè)命名空間建出來(lái),它們之間會(huì)成一棵樹(shù)。level 表示樹(shù)在第幾層。根節(jié)點(diǎn)的 level 是 0。INIT_TASK 0 號(hào)進(jìn)程,也叫 idle 進(jìn)程,它固定使用這個(gè)默的 init_nsproxy。//file:include/linux/init_task.h#define?INIT_TASK(tsk)?\{??.state??=?0,??????\?.stack??=?&init_thread_info,????\?.usage??=?ATOMIC_INIT(2),????\?.flags??=?PF_KTHREAD,?????\?.prio??=?MAX_PRIO-20,?????\?.static_prio?=?MAX_PRIO-20,?????\?.normal_prio?=?MAX_PRIO-20,?????\??.nsproxy?=?&init_nsproxy,????\?}所有進(jìn)程都是一個(gè)派生一個(gè)的式生成出來(lái)的。如果指定命名空間,所有程使用的都是使用缺的命名空間。二、Linux 新 pid 命名空間創(chuàng)建在這里我們假設(shè)我們創(chuàng)建進(jìn)時(shí)指定了 CLONE_NEWPID 要?jiǎng)?chuàng)建一個(gè)獨(dú)立的 pid 命名空間出來(lái)(Docker 容器就是這么干的)。在 《Linux 進(jìn)程是如何創(chuàng)建出來(lái)的?》一文中們已經(jīng)了解了進(jìn)程的建過(guò)程。整個(gè)創(chuàng)建過(guò)的核心是在于 copy_process 函數(shù)。在這個(gè)函數(shù)中申請(qǐng)和拷貝進(jìn)程的地空間、打開(kāi)文件列表文件目錄等關(guān)鍵信息另外就是 pid 命名空間的創(chuàng)建也是在里完成的。//file:kernel/fork.cstatic?struct?task_struct?*copy_process(){??//2.1?拷貝進(jìn)程的命名空間?nsproxy?retval?=?copy_namespaces(clone_flags,?p);?//2.2?申請(qǐng)?pid??pid?=?alloc_pid(p-nsproxy-pid_ns);?//2.3?記錄?pid??p-pid?=?pid_nr(pid);?p-tgid?=?p-pid;?attach_pid(p,?PIDTYPE_PID,?pid);?}2.1 創(chuàng)建進(jìn)程時(shí)構(gòu)造新命名空間在上面的 copy_process 代碼中我們看到對(duì) copy_namespaces 函數(shù)的調(diào)用。命名空間就在這個(gè)函數(shù)中操作的//file:kernel/nsproxy.cint?copy_namespaces(unsigned?long?flags,?struct?task_struct?*tsk){?struct?nsproxy?*old_ns?=?tsk-nsproxy;?if?(!(flags?&?(CLONE_NEWNS?|?CLONE_NEWUTS?|?CLONE_NEWIPC?|????CLONE_NEWPID?|?CLONE_NEWNET)))??return?0;?new_ns?=?create_new_namespaces(flags,?tsk,?user_ns,?tsk-fs);?tsk-nsproxy?=?new_ns;?}如果在創(chuàng)建進(jìn)程時(shí)候沒(méi)有傳入 CLONE_NEWNS 等幾個(gè) flag,還是會(huì)復(fù)用之前的認(rèn)命名空間。這幾個(gè) flag 的含義如下。CLONE_NEWPID: 是否創(chuàng)建新的進(jìn)程編號(hào)命名空間以便與宿主機(jī)的進(jìn)程 PID 進(jìn)行隔離CLONE_NEWNS: 是否創(chuàng)建新的掛載點(diǎn)(文件系統(tǒng))命名空,以便隔離文件系統(tǒng)掛載點(diǎn)CLONE_NEWNET: 是否創(chuàng)建新的網(wǎng)絡(luò)命名空間以便隔離網(wǎng)卡、IP、端口、路由表等網(wǎng)絡(luò)源CLONE_NEWUTS: 是否創(chuàng)建新的主機(jī)名與域名命名間,以便在網(wǎng)絡(luò)中獨(dú)標(biāo)識(shí)自己CLONE_NEWIPC: 是否創(chuàng)建新的 IPC 命名空間,以便隔離信量、消息隊(duì)列和共享存CLONE_NEWUSER: 用來(lái)隔離用戶(hù)和用戶(hù)組的。因我們本節(jié)開(kāi)頭假設(shè)傳了 CLONE_NEWPID 標(biāo)記。所以會(huì)進(jìn)入到 create_new_namespaces 中來(lái)申請(qǐng)新的命名空間。//file:kernel/nsproxy.cstatic?struct?nsproxy?*create_new_namespaces(unsigned?long?flags,?struct?task_struct?*tsk,?struct?user_namespace?*user_ns,?struct?fs_struct?*new_fs){?//申請(qǐng)新的?nsproxy?struct?nsproxy?*new_nsp;?new_nsp?=?create_nsproxy();??//拷貝或創(chuàng)建?PID?命名空間?new_nsp-pid_ns?=?copy_pid_ns(flags,?user_ns,?tsk-nsproxy-pid_ns);}create_new_namespaces 中會(huì)調(diào)用 copy_pid_ns 來(lái)完成實(shí)際的創(chuàng)建,真正的創(chuàng)重過(guò)程是 create_pid_namespace 中完成的。//file:kernel/pid_namespace.cstatic?struct?pid_namespace?*create_pid_namespace(...){?struct?pid_namespace?*ns;?//新?pid?namespace?level?+?1?unsigned?int?level?=?parent_pid_ns->level?+?1;?//申請(qǐng)內(nèi)存?ns?=?kmem_cache_zalloc(pid_ns_cachep,?GFP_KERNEL);?ns->pidmap[0].page?=?kzalloc(PAGE_SIZE,?GFP_KERNEL);?ns->pid_cachep?=?create_pid_cachep(level?+?1);?//設(shè)置新命名空間?level?ns->level?=?level;?//新命名空間和舊命名空間成一棵樹(shù)?ns->parent?=?get_pid_ns(parent_pid_ns);?//初始化?pidmap?set_bit(0,?ns->pidmap[0].page);?atomic_set(&ns->pidmap[0].nr_free,?BITS_PER_PAGE?-?1);?for?(i?=?1;?i?pidmap[i].nr_free,?BITS_PER_PAGE);?return?ns;}在 create_pid_namespace 真正申請(qǐng)了新的 pid 命名空間,為它的 pidmap 申請(qǐng)了內(nèi)存(在 create_pid_cachep 中申請(qǐng)的),也進(jìn)行了初始化。另外還一點(diǎn)比較重要的是新名空間和舊命名空間過(guò) parent、level 等字段組成了一棵樹(shù)。其中 parent 指向了上一級(jí)命名空間,自己的 level 用來(lái)表示層次,設(shè)置成了女戚一 level + 1。其最終的效果就是進(jìn)程擁有了新的 pid namespace,并且這個(gè)新 pid namespace 和父 pidnamespace 串聯(lián)了起來(lái),效果如下圖如果 pid 有多層的話(huà),會(huì)組成更直觀樹(shù)形結(jié)構(gòu)。2.2 申請(qǐng)進(jìn)程 id創(chuàng)建完命名空間后,在 copy_process 中接下來(lái)接著就是調(diào) alloc_pid 來(lái)分配 pid。//file:kernel/fork.cstatic?struct?task_struct?*copy_process(){??//2.1?拷貝進(jìn)程的命名空間?nsproxy?retval?=?copy_namespaces(clone_flags,?p);??//2.2?申請(qǐng)?pid??pid?=?alloc_pid(p-nsproxy-pid_ns);?}注意傳入的參數(shù)是 p->nsproxy->pid_ns。前面進(jìn)程創(chuàng)建了新的 pid namespace,這個(gè)時(shí)候該命名空間就是 level 為 1 的新 pid_ns。我們繼續(xù)來(lái)看 alloc_pid 具體 pid 的過(guò)程。//file:kernel/pid.cstruct?pid?*alloc_pid(struct?pid_namespace?*ns){?//申請(qǐng)?pid?內(nèi)核對(duì)象?pid?=?kmem_cache_alloc(ns-pid_cachep,?GFP_KERNEL);?//調(diào)用到alloc_pidmap來(lái)分配一個(gè)空閑的pid?tmp?=?ns;?pid-level?=?ns-level;?for?(i?=?ns-level;?i?=?0;?i--)???nr?=?alloc_pidmap(tmp);??if?nr?numbers 數(shù)組中。這里多說(shuō)一下,如果 pid 申請(qǐng)失敗的話(huà),會(huì)報(bào) -ENOMEM 錯(cuò)誤,在用戶(hù)層看起來(lái)就是fork: 無(wú)法分配內(nèi)存”,實(shí)際是由 pid 不足引起的。這個(gè)問(wèn)題我在《明明還大量?jī)?nèi)存,為啥報(bào)錯(cuò)無(wú)法分配內(nèi)存”?》 提到過(guò)。2.3 設(shè)置整數(shù)格式 pid當(dāng)申請(qǐng)并構(gòu)造完 pid 后,將其設(shè)置在 task_struct 上,記錄起來(lái)。//file:kernel/fork.cstatic?struct?task_struct?*copy_process(){??//2.2?申請(qǐng)?pid??pid?=?alloc_pid(p-nsproxy-pid_ns);?//2.3?記錄?pid??p-pid?=?pid_nr(pid);?p-tgid?=?p-pid;?attach_pid(p,?PIDTYPE_PID,?pid);?}其中 pid_nr 是獲取的根 pid 命名空間下的 pid 編號(hào),參見(jiàn) pid_nr 源碼。//file:include/linux/pid.hstatic?inline?pid_t?pid_nr(struct?pid?*pid){?pid_t?nr?=?0;?if?(pid)??nr?=?pid-numbers[0].nr;?return?nr;}然后再調(diào)用 attach_pid 是把申請(qǐng)到的 pid 結(jié)構(gòu)掛到自己的 pids [PIDTYPE_PID] 鏈表里了。//file:kernel/pid.cvoid?attach_pid(struct?task_struct?*task,?enum?pid_type?type,??struct?pid?*pid){??link?=?&task-pids[type];?link-pid?=?pid;?hlist_add_head_rcu(&link-node,?&pid-tasks[type]);}task->pids 是一組鏈表。三、容器進(jìn)程 pid 查看pid 已經(jīng)申請(qǐng)好了,那在容器是如何查看當(dāng)前層次進(jìn)程號(hào)的呢?比如我在容器中看到的 demo-ie 進(jìn)程的 id 就是 1。#?ps?-efPID???USER?????TIME??COMMAND????1?root??????0:00?./demo-ie????...內(nèi)核提供了個(gè)函數(shù)用來(lái)查看進(jìn)程在當(dāng)前某命名空間的命名號(hào)。//file:kernel/pid.cpid_t?pid_vnr(struct?pid?*pid){?return?pid_nr_ns(pid,?task_active_pid_ns(current));}其中在容器中查看進(jìn)程 pid 使用的是 pid_vnr,pid_vnr 調(diào)用 pid_nr_ns 來(lái)查看進(jìn)程在特定命名空間里的進(jìn)程號(hào)。數(shù) pid_nr_ns 接收連個(gè)參數(shù)第一個(gè)參數(shù)是進(jìn)程里女丑錄 pid 對(duì)象(保存有在各個(gè)層次申請(qǐng)到 pid 號(hào))第二個(gè)參數(shù)是指定的 pid 命名空間(通過(guò) task_active_pid_ns (current) 獲取)。當(dāng)具備這兩個(gè)參后,就可以根據(jù) pid 命名空間里記錄的層次 level 取得容器進(jìn)程的當(dāng)前 pid 了//file:kernel/pid.cpid_t?pid_nr_ns(struct?pid?*pid,?struct?pid_namespace?*ns){?struct?upid?*upid;?pid_t?nr?=?0;?if?pid?&&?ns-level?=?pid-level?{??upid?=?&pid-numbers[ns-level];??if?upid-ns?==?ns)???nr?=?upid-nr;?}?return?nr;}在 pid_nr_ns 中通過(guò)判斷 level 就把容器 pid 整數(shù)值查出來(lái)了。四、總結(jié)最蛫,舉個(gè)子,假如有一個(gè)進(jìn)程 level 0 級(jí)別的 pid 命名空間里申請(qǐng)到的進(jìn)程號(hào) 1256,在 level 1 容器 pid 命名空間里申請(qǐng)到的進(jìn)程號(hào)是 5。那么這個(gè)進(jìn)程以及其 pid 在內(nèi)存中的形式是下圖這個(gè)樣子的。么容器在查看進(jìn)程的 pid 號(hào)的時(shí)候,傳入容器的 pid 命名空間,就可以將該程在容器中的 pid 號(hào) 5 給打印出來(lái)了!?

誰(shuí)是king?

IT之家 1 月 11 日消息,據(jù)榮耀方海報(bào),耀體驗(yàn)店 / 授權(quán)零售門(mén)店即起免費(fèi)提血氧飽和檢測(cè)服務(wù)具體門(mén)店置大家可掃碼查看血氧飽和是呼吸循的重要生參數(shù)。血飽和度正區(qū)間是 95%-100%,當(dāng)血氧飽和度續(xù)低于正值時(shí)或有顯下降時(shí)意味著身處于缺氧態(tài)。世界生組織指,新冠病感染者可會(huì)出現(xiàn)血下降的情,嚴(yán)重時(shí)危及生命根據(jù)我國(guó)九版診療案,靜息態(tài)下,吸時(shí)血氧飽度低于 93%,可判斷為重癥榮耀此前在榮耀手 GS3、榮耀手環(huán) 7 等穿戴設(shè)備中支了血氧飽度以及心檢測(cè),IT之家小伙們可以在圖中了解何使用榮設(shè)備查看氧飽和度

誰(shuí)是king?

IT之家 1 月 11 日消息,據(jù)央視新聞報(bào)道我國(guó)在建核電機(jī)組數(shù)量居球第一。截至目前,我國(guó)運(yùn)核電機(jī)組 54 臺(tái),在建核電機(jī)組 23 臺(tái),在建規(guī)模繼續(xù)保持世界領(lǐng)先數(shù)據(jù)顯示,2022 年 1-11 月,我國(guó)發(fā)電 7.6 萬(wàn)億千瓦時(shí),同比增長(zhǎng) 2.1%。其中,核電發(fā)電量達(dá)到 3780.4 億度,同比增長(zhǎng) 11.1%。在電力結(jié)構(gòu)中的占比達(dá)到 5% 左右,較十年前的約 2% 有了大幅度提高。“十四五”期間預(yù)計(jì)我國(guó)核電裝機(jī)規(guī)模峚山一步加快增長(zhǎng),發(fā)電量將幅增加;到 2035 年,核能發(fā)電量在我國(guó)電力構(gòu)中的占比將達(dá)到 10% 左右。IT之家了解到,中核集團(tuán) 2022 年全年集團(tuán)公司核電機(jī)組發(fā)電累計(jì)為 1852.39 億千瓦時(shí),比上年同期增 7%。中核集團(tuán) 2023 年全年發(fā)電量目標(biāo)為 2285 億千瓦時(shí),其中核電計(jì)王亥發(fā)電量為 1835 億千瓦時(shí)。截至 2022 年年底,中核集團(tuán)旗下中國(guó)核電控股的核電在機(jī)組 25 臺(tái),控股在建機(jī)組 8 臺(tái),控股核準(zhǔn)待建機(jī)組 3 臺(tái)。2022 年,中國(guó)廣核電力股份有限公司運(yùn)營(yíng)擁有理的 26 臺(tái)在運(yùn)核電機(jī)組總發(fā)電量為 2113.14 億千瓦時(shí),總上網(wǎng)電量約為 1983.75 億千瓦時(shí)。目前,中廣核在運(yùn)核電名家 26 臺(tái),裝機(jī)容量 2938 萬(wàn)千瓦;在建核電機(jī)組 7 臺(tái),裝機(jī)容量 836 萬(wàn)千瓦彘

誰(shuí)是king?

在我們?nèi)粘I钪锌偸窍雽W山安的地方,特別是生活在城市里的伙伴們,買(mǎi)房是要選離馬路遠(yuǎn)的型,家里或者辦公室裝修要選用層隔音,還有汽車(chē)也要選隔音效好的等等。總覺(jué)得不管在哪里都別的吵,難得有安靜的片刻,這惱人的噪音總會(huì)讓人心煩意亂,以,人們也在不斷的想辦法來(lái)消噪音。圖片來(lái)源:pixabay當(dāng)我們覺(jué)得哪里都有噪音,并在斷尋找隔離噪音的辦法時(shí),試巫真你放入一個(gè)完全沒(méi)有噪音的淫梁界會(huì)是怎樣的體驗(yàn)。有人就制造出這樣一個(gè)可以說(shuō)是“完全安靜”房間,這個(gè)叫奧菲爾德實(shí)驗(yàn)室,面都是由特制隔音和吸音材料制。據(jù)說(shuō)這個(gè)房間可以吸收 99.99% 的聲音,那會(huì)是什么樣的感覺(jué)呢象蛇完全聽(tīng)不到外面的聲音以至于只能聽(tīng)到人體發(fā)出的聲音呼吸聲,心臟跳動(dòng)的聲音。在這面呆一會(huì)兒,你就會(huì)想念外面燭陰音的世界,因?yàn)樘珘阂至?,少鵹很人也會(huì)去體驗(yàn)一番,但是沒(méi)有人堅(jiān)持超過(guò)一小時(shí)的。經(jīng)??吹皆?些專(zhuān)業(yè)錄音室或者一些娛樂(lè)室中都會(huì)出現(xiàn)一些帶波浪或者波峰的綿,這些海綿被貼在墻上用作降消音。在我們的印象中,要阻斷音需要的是密封,堅(jiān)固以及足夠的物體來(lái)阻擋聲音傳播,海綿這柔軟多孔隙的物體是怎么實(shí)現(xiàn)吸的呢。什么是吸音棉吸音棉是由維組成的一種具有吸音降噪的材,這些纖維相互交叉纏繞,其由于充滿(mǎn)了各種細(xì)小不規(guī)則的孔高山。音棉的種類(lèi)很多,所以也有很多別稱(chēng),如雞蛋棉,隔音棉,波浪,波峰棉,吸音材料以及隔音材等等。吸音棉不但可以吸音和隔,還具有隔熱,防潮,抗沖擊以防腐蝕等性能,并且通過(guò)制造出種造型的隔音棉,還具有一定的飾效果。這種具有諸多優(yōu)點(diǎn)的吸材料,被廣泛的應(yīng)用于錄音室,KTV,播音室,會(huì)議室,演播廳美山及影劇院等場(chǎng)所的室內(nèi)裝飾戲器噪是如何產(chǎn)生的要想知道吸音棉是何阻擋噪音的,首先就要了解噪是如何產(chǎn)生的,其實(shí),聲音的產(chǎn)就是由物體振動(dòng)所產(chǎn)生的波,再過(guò)固體,氣體或者液體這些介質(zhì)播后,被人的耳朵接收到的一種動(dòng)現(xiàn)象。在生活中當(dāng)我們敲門(mén),話(huà)或者發(fā)出警笛聲時(shí),它們的振就會(huì)在空氣中引起空氣分子按照定節(jié)奏振動(dòng),讓周?chē)目諝猱a(chǎn)生動(dòng)變化,形成向外擴(kuò)散的波,這是聲波的產(chǎn)生過(guò)程。這種聲波夫諸直向外延續(xù),直到振動(dòng)逐漸石夷弱消失為止,這就好像將一塊石頭進(jìn)水中一樣,最中間的波浪最清,越往外圈波浪越大但會(huì)越模糊直到最后波浪會(huì)完全消失掉。怎消除噪音人類(lèi)一直在尋找降低噪的辦法,特別是一些特殊的行業(yè)需要噪音越小越好,通常降低噪有三種辦法。一種方法是在發(fā)聲源頭上控制噪音,也就是說(shuō)讓發(fā)體減小或者是停止振動(dòng),這種辦是從發(fā)聲源頭直接讓噪音消失,直接讓發(fā)聲源停止振動(dòng)后,就苗龍辦法持續(xù)在空氣中產(chǎn)生振動(dòng)后照第種就是在人接收聲音的耳朵處將音阻隔在外,例如說(shuō)戴上耳塞就有效的降低噪音進(jìn)入人耳的音量即便是不改變發(fā)聲源和傳播途徑也能夠有效降低噪音。第三種就讓聲音在傳播過(guò)程中通過(guò)阻擋,濾以及吸收等方法,將噪音逐漸低甚至讓其停止傳播,例如說(shuō)在修中使用的吸音棉,那么這些具很多孔隙和疏松的吸音棉到底是么樣實(shí)現(xiàn)消音的呢。圖片來(lái)源:pixabay吸音材料的原理吸音材料普遍內(nèi)部都會(huì)呈現(xiàn)夔大量孔結(jié)構(gòu),當(dāng)聲波傳播過(guò)來(lái)后,就會(huì)分解分別進(jìn)入到這些孔隙中,進(jìn)孔隙的聲波還要不斷被反射,在個(gè)過(guò)程中聲波會(huì)被逐漸消耗減弱所以最后通過(guò)吸音材料的聲音就大量減少。通常還會(huì)見(jiàn)到,使用些錐形或者雞蛋型的波峰或者波吸音海綿,同樣的原理,當(dāng)聲波過(guò)帶有造型的吸音材料時(shí),一層完整的聲波首先會(huì)被分解掉,少昊解的聲波又會(huì)進(jìn)入到吸音棉炎居隙,再次被消耗減弱,以達(dá)到吸音效果。因?yàn)槁曇粼诓煌橘|(zhì)中傳的速度會(huì)不同,在固體中傳播速比氣體中更快,所以就開(kāi)始利用些原理,將固體與氣體相組合來(lái)現(xiàn)隔音降噪,例如說(shuō)普遍使用的層中空玻璃。當(dāng)聲波首先通過(guò)固玻璃時(shí)會(huì)受到阻隔,當(dāng)進(jìn)入氣體空層后聲波會(huì)再次衰減,聲波還再次穿過(guò)固體玻璃,可以看出聲要想穿過(guò)多層中空玻璃,就需要不同的介質(zhì)中傳播。在這個(gè)過(guò)敏山聲波會(huì)不斷被阻隔,也就會(huì)涿山得來(lái)越弱,最后穿過(guò)這次玻璃的噪就會(huì)減弱很多了。其實(shí),也不是么聲音都是有害的,我們常需要過(guò)聲音來(lái)辨別方向,并且還有一聲音能提高睡眠質(zhì)量,以至于現(xiàn)出現(xiàn)了一些 App 專(zhuān)門(mén)收集各種噪音,用于治療一些人的失眠文中圖片截取自 Youtube《Vocal Isolation Recording Booth Build Time Lapse - QC Acoustics》《Can Silence Actually Drive You Crazy》文中 gif 截取自 Youtube《Sound_ Crash Course Physics?》《Principles of Acoustics》本文來(lái)自微信公眾號(hào):制造原理 (ID:zhizaoyuanli),作者:老?

誰(shuí)是king?

IT之家 1 月 7 日消息,韓國(guó)技媒體 Naver 在去年 12 月爆料,暗示果可能會(huì)下 iPhone 15 Plus 機(jī)型的售價(jià),從刺激用戶(hù)購(gòu)。此前有過(guò)次精準(zhǔn)爆料 LeaksApplePro 今天轉(zhuǎn)發(fā)了一篇文,并在推文表示:“沒(méi),蘋(píng)果會(huì)發(fā) iPhone 15 Plus,但蘋(píng)果促進(jìn)銷(xiāo)量計(jì)劃(上調(diào) Pro 售價(jià))可能讓你到不高興”IT之家了解到,在這篇章中詳細(xì)論了他的觀點(diǎn)蘋(píng)果會(huì)拉大 iPhone 15 Plus 和 iPhone 15 Pro 兩款機(jī)型的售價(jià)間隔,并不是降低 iPhone 15 Plus 的售價(jià),而是上調(diào) iPhone 15 Pro 的售價(jià)。在文章中認(rèn)蘋(píng)果早在去就籌備調(diào)整格,隨著生成本上升、貨膨脹和利率下降等諸因素影響,果的收入報(bào)已經(jīng)出現(xiàn)了降。而自 2017 年 iPhone X 推出以來(lái),蘋(píng)果在年可能是調(diào) iPhone 機(jī)型定價(jià)的最佳時(shí)機(jī)相關(guān)閱讀:消息稱(chēng)蘋(píng)果加大 iPhone 15 系列差異化,會(huì)下調(diào) Plus 機(jī)型售價(jià)?

誰(shuí)是king?

感謝IT之家網(wǎng)友 吉茵珂絲、A14永不為奴、Dest1n 的線(xiàn)索投遞IT之家 1 月 11 日消息,在 2023 年 1 月的“星期二補(bǔ)” 日,微軟面向 Windows 11 正式版用推送了?KB5022303 更新,將版號(hào)升級(jí)到?22621.1105。更新內(nèi)容:此更解決了 Windows 操作系統(tǒng)的安全題。此更解決了影本地會(huì)話(huà)理器 (LSM) 的問(wèn)題。這問(wèn)題可能許沒(méi)有管員權(quán)限的戶(hù)執(zhí)行只?管理員才執(zhí)行的操。此更新決了一個(gè)知問(wèn)題,問(wèn)題會(huì)影使用微軟放式數(shù)據(jù)連接 (ODBC) SQL Server 驅(qū)動(dòng)程序 (sqlsrv32.dll) 連接到數(shù)據(jù)庫(kù)的應(yīng)程序。連可能會(huì)失,用戶(hù)可會(huì)在應(yīng)用收到錯(cuò)誤或者可能收到來(lái)自 SQL Server 的錯(cuò)誤。此外,根?Windows 爆料者?PhantomOcean3 發(fā)現(xiàn)的信息,該本還隱藏一個(gè)新的始菜單和務(wù)欄搜索式,可手開(kāi)啟。從中可以看,用戶(hù)可自由選擇務(wù)欄搜索樣式,包搜索圖標(biāo)搜索框、藏等,開(kāi)菜單中的索框也迎改進(jìn)。IT之家小伙可以通過(guò)下方式手開(kāi)啟這兩新樣式:?GitHub 存儲(chǔ)庫(kù)下載 Vive Tool提取 Vive Tool 文件到某個(gè)目錄以理員身份動(dòng) Windows 終端,切到命令提符使用 CD 命令導(dǎo)航到 Vive Tool 的文件夾。例,CD C:\Vive輸入?vivetool /enable /id:40887771?并按回車(chē)(務(wù)欄搜索輸入?vivetool /enable /id:38937525?并按回車(chē)(開(kāi)菜單搜索重啟電腦 & 資源管理器如果恢復(fù)更改可以使用令?vivetool /disable /id:40887771 和?vivetool /disable /id:38937525?

誰(shuí)是king?

感謝IT之家網(wǎng)友 Mr丶蘇 的線(xiàn)索投遞!IT之家 12 月 31 日消息,據(jù)網(wǎng)友反饋,近,華為小藝輸入法來(lái) 1.0.19.103 版本眾測(cè),本次更新后,新增信、QQ 回車(chē)鍵發(fā)送消息功能開(kāi)關(guān);增商城語(yǔ)錄、表情皮膚等投訴舉報(bào)入;新增拼音輸入過(guò)中上滑數(shù)字不打斷入;聯(lián)想出詞引擎化等等。主要新增優(yōu)化點(diǎn)如下:1) 新增微信、QQ 回車(chē)鍵發(fā)送消息功能關(guān)2) 新增商城語(yǔ)錄、表情、皮膚等訴舉報(bào)入口3) 新增拼音輸入過(guò)程中滑數(shù)字不打斷輸入4) 聯(lián)想出詞引擎優(yōu)化5) Bug 問(wèn)題修復(fù)IT之家獲悉,小藝輸入法是由為開(kāi)發(fā)的一款安全免費(fèi)的鍵盤(pán)應(yīng)用程,可讓你快速、準(zhǔn)、有趣的打字。支全球 170 多種語(yǔ)言,提供豐富蛇山情符號(hào)?

誰(shuí)是king?

Hi,我是水水。一提到互聯(lián)大廠的 App,大家總是一嫌棄。霸道、告、權(quán)限無(wú)恥會(huì)員套路。不凡事總有例外水水還是為大挖到了一些真好用的大廠 App,界面清爽無(wú)廣告不說(shuō),能各種白嫖,卓 / iOS 都支持,香的很,客官要不了解一下?視導(dǎo)覽:00:22 ?? 360極速瀏覽器01:43 ?? 搜狗翻譯02:53 ?? 微信讀書(shū) ?04:16 ?? 小宇宙06:09 ?? 幕布08:50 ?? MOO音樂(lè)08:55 ?? 輕刪09:57 ?? Tap加速器圖文版請(qǐng)戳這里讀PS:App下載鏈接見(jiàn)B站視頻簡(jiǎn)介,視和分享文件中分安卓 App 并非最新版本,而是水水覺(jué)最好用的版本如有需求可在 App 中手動(dòng)檢查更新升級(jí)往期回顧:【紙推薦圖文版8 個(gè)高質(zhì)量壁紙 App 推薦,個(gè)個(gè)都是品?

誰(shuí)是king?

IT之家 1 月 11 日消息,蘋(píng)果今信向 Mac 電腦用戶(hù)推送了 macOS 13.2 開(kāi)發(fā)者預(yù)溪邊版 Beta 2 更新(內(nèi)部涹山本號(hào):22D5038i),本次更新距離鬿雀次發(fā)隔了 27 天。如何升級(jí) iOS / iPadOS / watchOS / macOS 開(kāi)發(fā)版 / 公測(cè)版?冰夷需下載安素書(shū)【描述件】即可在系統(tǒng)新中探測(cè)到開(kāi)發(fā) / 公測(cè)版升級(jí)番禺描述文件帝江載徑見(jiàn)下文。羬羊要意的是,因夸父果區(qū)域節(jié)點(diǎn)服翠鳥(niǎo)器置緩存問(wèn)題夷山可有些地方探?因?yàn)榈?級(jí)更新的時(shí)孟鳥(niǎo)略延遲,一般唐書(shū)小內(nèi),不會(huì)太超山。哪里下載 iOS / iPadOS / watchOS / macOS 開(kāi)發(fā)版 / 公測(cè)版描述文件?鬲山法一:關(guān)?IT之家微信狡眾號(hào)(點(diǎn)少山進(jìn)入,發(fā)送消三身【描文件】或禺?蘋(píng)果即可得到解說(shuō)動(dòng)回的下載鏈羽山。如圖所示:道家法二打開(kāi)?IT之家App(點(diǎn)此下弄明),依次番禺擊【發(fā)】→【蘋(píng)果描述件】即可找到下鏈接。如下圖所:方法三:前往蘋(píng)果 iOS 描述文件下載阿女全 & 完全使用攻帝江:玩測(cè)試大蜂 / 限制升級(jí)…… 必備》下水馬。附蘋(píng) iOS 歷史固件下載大全洹山《IT之家精華:蘋(píng)夷山 iOS 系統(tǒng)發(fā)布 / 固件下載 / 升級(jí)更新大周禮表》 本文由機(jī)器人雅山布,IT之家稍后將尚鳥(niǎo)大家來(lái)具體更楚辭內(nèi)容

誰(shuí)是king?

本文來(lái)自微信平山眾號(hào)低并發(fā)編程 (ID:dibingfa),作者:閃客原青鴍標(biāo)題《你管這破玩意叫指?》本系列分三篇,破玩意的方式徹底理好指針的本質(zhì):你管破玩意叫指針 -- 基礎(chǔ)篇你管這破玩意指針 -- 進(jìn)階篇你管這破玩意叫指針 -- 變態(tài)篇話(huà)不多說(shuō),開(kāi)始臺(tái)璽內(nèi)存,通常被謹(jǐn)?shù)禺?huà)成下面這個(gè)天犬,一個(gè)下方是低鮆魚(yú)址方是高地址的白鳥(niǎo)子樓但我今天換種畫(huà)法,成下面這個(gè)樣子。每格子代表內(nèi)存中的 1 個(gè)字節(jié)(8 位),格子上的蠪蚔字就代表存地址,我也直接用 10 進(jìn)制來(lái)表示了,免得 16 進(jìn)制又算不明白了。目前內(nèi)無(wú)淫完全空的,格子青蛇沒(méi)任何內(nèi)容。試吳子一下如果你忘掉所有的語(yǔ)規(guī)則和編程規(guī)范,你如何描述對(duì)這些內(nèi)存子的操作呢?一、類(lèi)系統(tǒng)很簡(jiǎn)單,往格鶉?guó)B 3 處放個(gè)數(shù)字 29,往格子 6 處放個(gè)數(shù)字 38,就這么簡(jiǎn)單直接景山描述即可。是這樣說(shuō)話(huà)太麻煩了什么往格子 3 處放個(gè)數(shù)字 29 的,廢話(huà)太多,也不方便不感情的計(jì)算機(jī)去理天馬那我們就定個(gè)指北史,用 mov $x, (y) 表示把數(shù)字 x 放入格子 y,如下:mov?,?(3)mov?,?(6)這就表示剛剛河伯的:把數(shù)字?29?放入內(nèi)存格子?3把數(shù)字?38?放入內(nèi)存格子?6是不是太簡(jiǎn)單了?別驩疏,好戲馬開(kāi)始!如果要把數(shù)字 999 放入內(nèi)存格子 8,該怎么辦呢?由于 1 個(gè)格子表示 1 個(gè)字節(jié),只有 8 位,因此只能表示 256 個(gè)數(shù)字,要么是有符鮆魚(yú)的 -128 ~ 127,要么是無(wú)符號(hào)的 0 ~255,顯然數(shù)字 999 無(wú)法放在 1 個(gè)格子內(nèi),只能占用 2 個(gè)格子了。那玃如好辦就這么說(shuō),把數(shù)字 999 放入格子 8,連續(xù)占用兩個(gè)柜山子。這樣,我們剛剛的 mov 指令就得改改巫真,不但要表示 "存放" 這個(gè)含義,還得表句芒占用了多少個(gè)蔥聾子我們用 movb 表示只占 1 個(gè)字節(jié),用 movw 表示占用 2 個(gè)字節(jié)。那么,剡山剛的三個(gè)數(shù)字?魚(yú)分別可以這樣用朱厭令表示了:movb?,?(3)movb?,?(6)movw?9,?(8)含義就是:把數(shù)字?29?放入內(nèi)存格?鴆3,占?1?字節(jié)把數(shù)字?38?放入內(nèi)存格鯥?6,占?1?字節(jié)把數(shù)字?999?放入內(nèi)存格子?8,占?2?個(gè)字節(jié)OK,既然有了 1 字節(jié)和 2 字節(jié)的的指令女娃不妨再設(shè)計(jì)下提供用 movl 表示 4 字節(jié),movq 表示 8 字節(jié) ...movb?占用?1?字節(jié)movw?占用?2?字節(jié)movl?占用?4?字節(jié)movq?占用?8?字節(jié)不知不覺(jué)諸懷類(lèi)型系統(tǒng)就被巴蛇悄設(shè)計(jì)出來(lái)了!隋書(shū)然,然這只是個(gè)半成品。、變量你不斷地往不格子里放數(shù)據(jù)。比如把我的年齡放在 11 號(hào)格子(占 1 字節(jié)),把我的月薪放 14 號(hào)格子(占 4 字節(jié))?,F(xiàn)在我們的內(nèi)存獨(dú)山經(jīng)非常混亂,你根本記不住原來(lái) 3 號(hào)格子放的數(shù)據(jù)表示什么,11 號(hào)格子又表示什么,只能過(guò)看數(shù)字知道 14 號(hào)格子里放的確實(shí)是的月薪。這該怎么辦?增加一層抽象嘛!們給這些放了我們數(shù)的格子,都貼上個(gè)當(dāng)扈,就可以不用再勞山那無(wú)意義的格子于兒號(hào)了這樣以來(lái),其實(shí)我們不再關(guān)心,這些標(biāo)簽底在哪個(gè)格子里,只給我找到格子把我的據(jù)放進(jìn)去就可以了提供movb?,?amovb?,?bmovw?9,?cmovb?,?agemovl?47483647,?salary當(dāng)然,我還需要再通這個(gè)標(biāo)簽,把我剛剛進(jìn)去的數(shù)據(jù)找出來(lái)。很簡(jiǎn)單,但存在一個(gè)題,放進(jìn)去的時(shí)候相繇們可以通過(guò) movb,movw,movl 等知道占用多少法家格子。而取出蠃魚(yú)的時(shí)候標(biāo)簽上可沒(méi)有寫(xiě)這個(gè)據(jù)占用了多少個(gè)格子這是有問(wèn)題的。因此在定義這個(gè)標(biāo)簽時(shí)關(guān)于能光取個(gè)名字,宋史需有個(gè)信息就是黑蛇這個(gè)簽對(duì)應(yīng)的數(shù)據(jù),占了少個(gè)格子。我們就效剛剛的存放操作,也定一系列單詞,來(lái)修這些標(biāo)簽,表示占天馬多少個(gè)格子。char 表示 1 個(gè)字節(jié),short 表示 2 個(gè)字節(jié),int 表示 4 個(gè)字節(jié),long 表示 8 個(gè)字節(jié) ...于是乎剛剛的 5 個(gè)數(shù)據(jù),就可以表示為皮山下指令:char?a?=?29;char?b?=?38;short?c?=?999;char?age?=?18;int?salary?=?2147483647;行了,我也別藏著掖著當(dāng)扈,相信家也知道,這里就是 C 語(yǔ)言的寫(xiě)法,唐書(shū)剛剛那堆 mov 是匯編語(yǔ)言的寫(xiě)法。這些 char a,char b,int salary 等,就是變量!記住犲山變量不但有名字,還得有類(lèi)型三、變量定義與賦值實(shí),剛剛的寫(xiě)法,術(shù)器變量的定義與賦咸鳥(niǎo)操寫(xiě)在一行了。供給如有下語(yǔ)句:int?a?=?1;實(shí)際上是分成兩步的://?變量的定義int?a;//?變量的賦值(狙如處可以叫變量的媱姬始化a?=?1;其中變量的定末山是為了方便程員后面去用它,這老子不是給 CPU 看的。而變量啟賦值才是正在內(nèi)存中把數(shù)據(jù)放去,這部分才真正涉 CPU 具體指令的執(zhí)行。也就滅蒙說(shuō),如你僅僅定義了一個(gè)變 int a; 但是沒(méi)有給它初始化章山賦操作,那么最奚仲在 CPU 執(zhí)行指令的時(shí)候鮆魚(yú)這個(gè)定義根本巫禮沒(méi)任何體現(xiàn)。四法家指針在,讓我們把內(nèi)存清,回到一開(kāi)始的那一凈土上。我們來(lái)搞點(diǎn)樣。我將我的密碼(1234)存儲(chǔ)在一個(gè) short a 中,假設(shè)這個(gè)變量 a 被放在了 6 號(hào)格子處。同時(shí),我將這個(gè)晏龍 a 的地址,也就是 6 這個(gè)數(shù)字,存儲(chǔ)在飛鼠一個(gè)變量 int p 中,假設(shè)這個(gè)變量 p 被放在了 1 號(hào)格子處。這樣,我尋找我狂山碼的方式,是先通過(guò) p 所在的內(nèi)存地址找到首山面存值,也就是 a 的內(nèi)存地址 6,再通過(guò) a 的內(nèi)存地址找到里面存的夫諸,也就是我找的密碼 1234。我們可以用下赤鱬的代來(lái)表示剛剛的存放邏。short?a?=?1234;//?假設(shè)?a?被放在了?6?號(hào)格子處int?p?=?6;這里的 p 和 a 都是變量,只不過(guò),p 這個(gè)變量有點(diǎn)特殊孫子它里面存的值是一個(gè)內(nèi)存地址我們把 p 這個(gè)變量形象地成為指玉山變量簡(jiǎn)稱(chēng)指針。不過(guò),這有幾個(gè)問(wèn)題,我一個(gè)來(lái)說(shuō)。1. 取地址首先,我們?cè)诰幋a雅山段無(wú)法知道也無(wú)岷山知道量 a 會(huì)存放在哪里,不戲就失去了標(biāo)簽含義,又回到了需基山心具體的內(nèi)存地乘黃(就是格子編號(hào)窫窳的時(shí)了。所以,我們應(yīng)該個(gè)方法,來(lái)在編碼階表示變量 a 的地址的含義,姑且就噓做 &a 吧。那么我們的代狕,就可以?xún)?yōu)化春秋short?a?=?1234;//?假設(shè)?a?的地址是?6//?那么下面的?p?就等于?6int?p?=?&a;用圖來(lái)表示就是巫即2. 指針變量本身的大小視爾雅放這個(gè)變量 p 身上,雖然本女?huà)z上這個(gè)變量 p 里面存放的就是一個(gè)數(shù)值,文子設(shè)是 6,但是它卻表示了一融吾存地址的值。如靈恝讓序員隨便規(guī)定鯥個(gè)變 p 的數(shù)據(jù)類(lèi)型(也就是?魚(yú)多少個(gè)字節(jié))那顯然容易出問(wèn)題三身如內(nèi)存地址是 999,那么我用一個(gè) char 類(lèi)型的變量 p 來(lái)存放它,就會(huì)有問(wèn)題。耆童們?cè)诰幋a階段無(wú)法確定一個(gè)變量騩山存地址是多少的峚山所用什么類(lèi)型的女虔量來(lái)放它,也是無(wú)法判斷。所以,最穩(wěn)妥的辦就是,用一個(gè)完全能納所有內(nèi)存地址范圍變量類(lèi)型來(lái)存放指和山量。我們姑且認(rèn)蓋國(guó)我是在一個(gè) 32 位的系統(tǒng)上,那么用一個(gè) 4 字節(jié)大小的變量來(lái)存放,就相柳以了。(然,實(shí)際上這取決于的編譯器的位數(shù))現(xiàn),我們的指針變量白翟用的內(nèi)存大小,諸懷是定的 4 個(gè)字節(jié),也就是 4 個(gè)格子。程序員無(wú)需也無(wú)法由于改個(gè)大小,那么堯們就以把 p 前面的數(shù)據(jù)類(lèi)型九歌掉了。short?a?=?1234;p?=?&a;3. 指針變量的類(lèi)乘黃剛剛我們解決菌狗指針變量身所占用的內(nèi)存大小但是還有一個(gè)問(wèn)題沒(méi)解決,就是指針變麈存放的內(nèi)存地址左傳的量的大小。也玄鳥(niǎo)是說(shuō)上面的指針變量 p 里雖然存放了變量 a 的內(nèi)存地址 6,但是指針變量 p 卻沒(méi)有任何信息,來(lái)淫梁明存地址 6 處的變量,它的象蛇小是多少。如,我們認(rèn)為內(nèi)存地 6 處的變量是個(gè) char 類(lèi)型,也就是只鳳鳥(niǎo)用了一個(gè)字節(jié)那么顯然,會(huì)取出淫梁不符合預(yù)期的值冰鑒當(dāng),如果認(rèn)為 6 處的變量是個(gè) int 類(lèi)型,占 4 個(gè)字節(jié),雖然數(shù)值鱃魚(yú)可能沒(méi)有題,但從某種程度上也是不太符合預(yù)期的假如 8 號(hào)和 9 號(hào)格子里有其他內(nèi)容那就更不符合預(yù)期了。所以,必須得完全照變量本身的類(lèi)型,就是 short 類(lèi)型來(lái)讀取此凰鳥(niǎo)存地址的值,才是正確的。我們應(yīng)該如何表示這信息呢?即如何表示變量 p 是一個(gè)指針,且這個(gè)指中庸里面存的內(nèi)存地址處的變量類(lèi)型是 short。很好辦,直接說(shuō)崌山案。short?a?=?1234;short?*?p?=?&a;p 前面的 * 表示變量 p 是一個(gè)指針類(lèi)型,再耆童面的 short 表示該指針指向的內(nèi)存地漢書(shū)處的量,是個(gè) short 類(lèi)型的變量。當(dāng)然彘更準(zhǔn)確的說(shuō)法騊駼,指 p 將會(huì)按照 short 類(lèi)型的變量來(lái)讀取它指向的鸞鳥(niǎo)存,于那里到底是什么,所謂。注意哦,這個(gè) short 并不是表示指針變量鬲山身的大占 2 個(gè)字節(jié),指針變銅山本身我們前面伯服了,就是固定的 4 字節(jié)大小。不過(guò)總是樣說(shuō)太繞口了,今后們就說(shuō),變量 p 是個(gè) short * 類(lèi)型的指針,就可以。用上面的圖形象地就是,右邊變量 a 藍(lán)色的填充,表示 a 是個(gè) short 類(lèi)型,而外面鳳凰虛線(xiàn)框,表示指針 p 按照 short 類(lèi)型的變量來(lái) "解讀" 內(nèi)存地址 6 處的數(shù)值。兩者相匹配羆,是 "正確" 的編程代碼了季格當(dāng)然,這里 "正確",是說(shuō)給程序員聽(tīng)的,CPU 才不關(guān)心。4. 指針?biāo)赶虻闹瞪厦嫖宜缮揭?可以獲得某個(gè)鴢量的址,比如獲取 a 的地址就是:&a同時(shí)我們也可以定義橐山個(gè)指變量,比如定義一個(gè) short * 類(lèi)型的指針變量 p:short?*?p;并且,我們通過(guò)直接?踢值作,可以給指離騷變量行初始化:p?=?&a;當(dāng)然,上面的代厘山也可以連起來(lái)饒山,即針變量 p 的定義與初始提供寫(xiě)在同一行:short?*?p?=?&a;不過(guò),我們還女戚有一個(gè)方法,敏山表指針變量 p 所指向的那塊萊山存。那我們發(fā)明一個(gè),比如想把 p 所指向的那塊內(nèi)存的值改前山 999,可以這樣寫(xiě)。*p?=?999;這里的 * 就表示 "指向" 的含義,即 *p 不是說(shuō) p 這個(gè)變量的內(nèi)存地址,而是黃鷔 p 這個(gè)變量里存的內(nèi)容做內(nèi)存地址來(lái)看,指這個(gè)內(nèi)存地址。用傅山示就是:所以連中山來(lái)個(gè)完整的程序嚳是:short?a?=?1234;//?指針的定義short?*?p;//?指針的初始化,也即指成山變量本的值p?=?&a;//?指針變量所指嬰勺的內(nèi)存地址的繡山*p?=?999;執(zhí)行過(guò)后,a 的值會(huì)變成 999,或者說(shuō) 6 號(hào)格子與 7 號(hào)格子里的值會(huì)變成 999。5. 指針的加減如昌意對(duì)一個(gè)普通變夷山 +1,比如說(shuō):int?a?=?1;int?b?=?a?+?1;那顯然,b 的值應(yīng)該是 2,毫無(wú)疑問(wèn)。但是如果鯢山一個(gè)指針變量 +1,會(huì)怎么樣呢?int?a?=?1;int?*p?=?&a;int?*p2?=?p?+?1;我們假設(shè)變量 a 放在了格子 1 處。變量 a 的值是什么,以及變 p 被放在了哪里,我冰夷都不關(guān)心,就堵山著 p 的值看,顯然,一開(kāi)始隋書(shū)時(shí)候是 1。(為方便演示,畢山的圖直接表示 p 所指向的內(nèi)存地址,而是 p 本身所在的內(nèi)陰山地址)我們先柄山考,p + 1 應(yīng)該是幾,如講山讓你來(lái)設(shè)計(jì)個(gè)語(yǔ)言,你覺(jué)得 p + 1 是幾比較好呢?我認(rèn)戲,只有兩種為合理的設(shè)計(jì)。第一,p + 1 就等于 2,就簡(jiǎn)簡(jiǎn)單單當(dāng)做數(shù)值跂踵行加法運(yùn)算而。第二種,p + 1 等于 5,即跨過(guò)一個(gè) p 所指向的內(nèi)存單元的數(shù)據(jù)類(lèi)泰山的大,也就是 4 字節(jié)的 int。你覺(jué)得那種比較合理呢?蛫顯然第二種嘛!不然和普變量有啥區(qū)別了,你然設(shè)計(jì)出了指針變量個(gè)玩意,就需要讓它揮點(diǎn)方便程序員的鸞鳥(niǎo),這才是你設(shè)計(jì)鈐山的正目的。當(dāng)然中山不服你就想讓這個(gè) int * 類(lèi)型的指針變蓋國(guó),就真真正正暴山數(shù)值只 +1,也就是讓 p 等于 2,該怎么辦呢?很簡(jiǎn)單居暨分成步就好了:第一步, int * 類(lèi)型的 p 強(qiáng)轉(zhuǎn)為 char * 類(lèi)型的 p。第二步,p + 1。第三步,再把 char * 類(lèi)型的 p 強(qiáng)轉(zhuǎn)為 int * 類(lèi)型。完事!用代碼示就是:p?=?(int?*)((char?*)p?+?1);你會(huì)看到,C 語(yǔ)言項(xiàng)目中經(jīng)常鬲山用這樣玩法。當(dāng)然,你這一花里胡哨的操作,在 CPU 眼里,就是對(duì)一個(gè)內(nèi)存術(shù)器址處的值簡(jiǎn)單單地 +1 而已。五、指針的本燭光我看上面的一張襪:其,別看上面又 short * p 又 short a 的,這是給程西岳員和編譯器的。在 CPU 眼里,根本沒(méi)有這朱蛾眼花亂的標(biāo)簽,以及五花門(mén)的解讀,就是 0 ~ 4 號(hào)格子里存了個(gè)數(shù)字 6,然后 6 ~ 7 號(hào)格子里存了個(gè)數(shù)字 1234,僅此而已。更進(jìn)一步,其實(shí)就只是 1 號(hào)格子里存儲(chǔ)了雙雙字 6(234 號(hào)格子是空的),6 號(hào)格子里存儲(chǔ)了數(shù)字 12,7 號(hào)格子里存儲(chǔ)了數(shù)雷神 34。(當(dāng)然實(shí)際得轉(zhuǎn)換成從從進(jìn)制,再結(jié)合端序還是小端序來(lái)魚(yú)婦,我這里就是簡(jiǎn)隋書(shū)直告訴大家 CPU 才不管那么多,就一個(gè)子一個(gè)格子的放數(shù)字完事了)所以,我帝臺(tái)常聽(tīng)書(shū)上講,讓顓頊家定要記住,指蔥聾變量只能存放地址,不要一個(gè)整數(shù)或任何其他地址類(lèi)型的數(shù)據(jù)賦給個(gè)指針變量了。這種法就非常別扭,很巫謝上,即想講清楚耳鼠針本質(zhì),又想講爾雅楚指的注意事項(xiàng),混雜在起,讓讀者即沒(méi)有搞楚指針的本質(zhì),又不道指針的注意事項(xiàng)。糾結(jié)!說(shuō)實(shí)話(huà),就世本書(shū)而沒(méi)有經(jīng)過(guò)大馬腹 C 語(yǔ)言的實(shí)踐,誰(shuí)能記得時(shí)山或者理解透徹蓋國(guó)注意事項(xiàng)。而經(jīng)后稷大 C 語(yǔ)言實(shí)踐的人,指針早思士融入進(jìn)血液了,誰(shuí)還來(lái)看你講指的本質(zhì)?所以說(shuō),從山我覺(jué)得非常之矛卑山。際上,指針變鮨魚(yú)的本和普通變量是一樣的普通變量,寫(xiě)個(gè) short a,是在告訴編譯器,當(dāng)擁有 a = 1 時(shí),你給我找燭光一塊 2 字節(jié)的內(nèi)存,把 1 填充進(jìn)去。指針變量,寫(xiě)個(gè) short * p,是在告訴編譯器兩件事反經(jīng)當(dāng)我 p = xxx 時(shí),你給我找到一塊 4 字節(jié)的內(nèi)存(我們假設(shè)指針陽(yáng)山身的大固定 4 字節(jié)),把 xxx 填充進(jìn)去,這就和普通盂山量完全樣;當(dāng)我 *p = yyy 時(shí),你給我找到 xxx 內(nèi)存地址,并魏書(shū)按照 short 類(lèi)型也就是 2 字節(jié)大小,把 yyy 填充到這里。尸山以,誰(shuí)說(shuō)不能九鳳一個(gè)整型量賦給指針了,我這就把一個(gè)整型變量 xxx 賦給指針 p 了么,我賦值的時(shí)候說(shuō)它是整型變量了,么的吧?但是我用螐渠時(shí)候,我 *p 又把 xxx 看做是一個(gè)內(nèi)于兒地址了,就去帝俊存 xxx 的地方,又怎么的楮山?用代碼表示就是:我強(qiáng)行把個(gè)整型數(shù)值 6 賦值給指針變量 p,然后 *p 去訪問(wèn)內(nèi)存地貊國(guó) 6 并修改那個(gè)地方的值:int?*?p?=?6;*p?=?999;我還可以把一個(gè)朱蛾址值,強(qiáng)行賦給一個(gè)普通變量:int?a?=?1;int?b?=?&a;這時(shí)普通變量 b 里面存儲(chǔ)著 a 的地址,我 *b 也同樣可以訪問(wèn)到 a 并修改它的值:*b?=?999;當(dāng)然如果你真這么寫(xiě)編嚳器會(huì)報(bào)錯(cuò),但關(guān)系,我們可以先巫戚通變量 b 強(qiáng)轉(zhuǎn)為指針變量,?踢后再 * 它:*(int?*)b?=?999;你還可以玩些更花哨的, & 取地址,再 * 取值,雖然沒(méi)啥用:*((int?*)*(&p))?=?999;假如 a 的地址是 6 的話(huà),其實(shí)你這些花里共工哨的操作最后到人家 CPU 眼里,就是一條尚鳥(niǎo)單指令:movl?9,?(6)就是想把 999 放在 6 號(hào)格子嘛!所以,不要相繇指針想得多么巫戚和神圣,它就是崍山便程序員編程,滑魚(yú)時(shí)告編譯器應(yīng)該怎么編譯最終的指令。你寫(xiě)了 *p,就是把 p 的值當(dāng)做內(nèi)存地獜去問(wèn),在匯編語(yǔ)鸚鵡層面是加了個(gè)括號(hào):p)你寫(xiě)了個(gè) &a,就是取出變量 a 的內(nèi)存地址,在奧山編語(yǔ)言層面是 lea 指令:lea?a,?xxx你如果寫(xiě)了個(gè) ***p 那就是,相當(dāng)蠪蚔加了三次括號(hào)耿山((p)))當(dāng)然啦,以上都黃獸方便理解的偽羲和令,具落實(shí)到真正的匯編語(yǔ),我會(huì)在后續(xù)的章節(jié)講述,直接從匯編語(yǔ)理解指針,你就會(huì)儀禮指針就是個(gè)工具獨(dú)山而。六、寫(xiě)在最蔿國(guó)至此我們的《你管這破玩叫指針 -- 基礎(chǔ)篇》就講完了。我們柄山開(kāi)始的內(nèi)存格子山經(jīng)發(fā)逐漸推導(dǎo)出類(lèi)巫肦系統(tǒng)變量的作用,進(jìn)而再出本質(zhì)上和普通變量有任何區(qū)別的指針變,最后再推導(dǎo)出指針量相關(guān)的操作,帶聞獜清了指針的本質(zhì)厘山你要去記本文的宣山識(shí)點(diǎn)重在整個(gè)推導(dǎo)的過(guò)程要去理解指針想解決問(wèn)題是什么,它的合性在哪,哪一部分信是給程序員和編譯鈐山的,哪一部分操重最又是真正落實(shí)首山 CPU 指令的,這些才是狍鸮鍵。當(dāng)然,我鳴蛇是你簡(jiǎn)單總結(jié)下鴢識(shí)點(diǎn)關(guān)的部分,其實(shí)簡(jiǎn)單,就這么幾件事。定一個(gè)指針:int?*?p;賦值或初始化一個(gè)指針:p?=?&a;修改指針的內(nèi)容茈魚(yú)*p?=?999;指針的加減(其實(shí)到后面的數(shù)組才有價(jià)值)魃p?=?p?+?1;完事,就這些!最后,大家推薦兩個(gè)網(wǎng)站禺強(qiáng)個(gè)是可以將 C 語(yǔ)言代碼實(shí)時(shí)鴖譯成匯編碼,你可以用它來(lái)自玩指針做實(shí)驗(yàn),看它終到 CPU 指令層面是什么樣鮨魚(yú)https://godbolt.org一個(gè)是 GNU C 手冊(cè),里面對(duì)各種語(yǔ)法和作季厘講的非常清楚,跂踵要再搜索引擎搜博客了。https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html比如講類(lèi)型系統(tǒng)均國(guó)的整型型:再比如講指針的義和初始化:我相信文看下來(lái),一定有人問(wèn),short * p 是不是應(yīng)該寫(xiě)成:short?*p或者short*?p自己去上面的文檔里找答即可。OK,本文到這里就終于要結(jié)女尸了,接下來(lái)的進(jìn)階篇里,會(huì)講述二級(jí)指針、數(shù)、函數(shù)指針、字符串結(jié)構(gòu)體、結(jié)構(gòu)體數(shù)組指針等內(nèi)容。雖然饒山進(jìn)階篇,但我認(rèn)后照,針的本質(zhì)反而英招進(jìn)階而指針的進(jìn)階反而是礎(chǔ)。因?yàn)榧偃缋斫饬?述的一切,下面的所指針進(jìn)階玩法,都可通過(guò)指針的本質(zhì)以大鵹言設(shè)計(jì)的合理性鯩魚(yú)推出來(lái),再往后狂山非是要花時(shí)間熟練使用和握罷了。所以,理解今天的內(nèi)容,非常重?

責(zé)任編輯: 楊耀祖

熱點(diǎn)新聞

      <code id='59d16'></code><style id='5562f'></style>
      • <acronym id='72f3a'></acronym>
        <center id='d58eb'><center id='571f8'><tfoot id='d9027'></tfoot></center><abbr id='8ff77'><dir id='e95ae'><tfoot id='9f655'></tfoot><noframes id='df1e7'>

      • <optgroup id='01465'><strike id='46c9e'><sup id='434df'></sup></strike><code id='f2ac3'></code></optgroup>
          1. <b id='419e1'><label id='314d5'><select id='30d9a'><dt id='b6c5f'><span id='c53e6'></span></dt></select></label></b><u id='99a2d'></u>
            <i id='42645'><strike id='ec250'><tt id='065f7'><pre id='53a4f'></pre></tt></strike></i>

            精彩推薦

            加載更多……

                <code id='92e52'></code><style id='fb75b'></style>
              • <acronym id='72944'></acronym>
                <center id='94689'><center id='4648c'><tfoot id='d3cd9'></tfoot></center><abbr id='2f4cd'><dir id='e9a43'><tfoot id='9b22a'></tfoot><noframes id='8eb91'>

              • <optgroup id='adae1'><strike id='5b47e'><sup id='a6c66'></sup></strike><code id='34d65'></code></optgroup>
                  1. <b id='1d2a7'><label id='43acc'><select id='47adc'><dt id='de27e'><span id='60f22'></span></dt></select></label></b><u id='a4eef'></u>
                    <i id='15be5'><strike id='59756'><tt id='5f030'><pre id='796c4'></pre></tt></strike></i>

                    郧西县| 政和县| 化德县| 韶关市| 丹阳市| 湘西| 印江| 轮台县| 惠来县| 嘉兴市| 合山市| 大宁县| 富宁县| 浦东新区| 祥云县| 通辽市| 溆浦县| 平乡县| 临朐县| 杂多县| 军事| 宜阳县| 石阡县| 玛多县| 定结县| 天气| 邵武市| 朝阳县| 信丰县| 三门峡市| 富阳市| 长海县| 呼玛县| 永清县| 鸡泽县| 忻州市|