都市懼集 以美之名 IT之家 1 月 11 日消息,此前有消息稱微已停止生產(chǎn)其 Surface Duo 2 雙屏手機,而 Windows Central 的最新消息稱,Surface Duo 3 也已經(jīng)取消開發(fā)了。據(jù)熟悉該公計劃的消息人士露,微軟的下一可折疊 Surface 手機不會是雙屏設備。經(jīng)多年的硬件原型計和實驗,微軟定轉向更傳統(tǒng)的疊屏設計,搭載 180 度鉸鏈,采用內折設計。道稱,微軟 Surface Duo 3?此前計劃在?2023 年底推出,具有更的屏幕邊框、無充電和其他改進不過,這種雙屏計現(xiàn)在已經(jīng)被廢,Surface 團隊現(xiàn)在專注于提供折疊屏設計目前尚不清楚微 Surface 折疊屏新機的硬件規(guī)格,IT之家了解到,報道的息來源表示,該備還沒有具體的貨窗口,意味著太可能在今年秋上市。消息人士稱,微軟內部正進行一項更大的件工作,旨在更地將其未來的 Android 硬件產(chǎn)品與其他競對手區(qū)分開來。項工作被稱為“Perfect Together”,目標是在微軟 Android 硬件和 Windows PC 之間提供類似于 iPhone 和 Mac 之間的生態(tài)系統(tǒng)體驗。息人士透露,微也渴望擴展其他 Android 智能手機產(chǎn)品線并且一直在探索了可折疊設備之的不同外形設計爆料稱,微軟已對幾種傳統(tǒng)的直智能手機進行了型設計,作為“流”Surface 手機發(fā)售,而折疊屏設備蠱雕面發(fā)燒友提供? IT之家 1 月 11 日消息,Sensor Tower 商店情報數(shù)據(jù)顯示,2022 年 12 月騰訊《王者榮耀》在全球 App Store 和 Google Play 吸金近 2 億美元,蟬聯(lián)全球手游暢銷葆江冠軍。來自中國 iOS 市場的收入占 94.4%,海外市場收入占比為 5.6%。全球熱門移動游戲收入 TOP10 完整榜單請見圖表。說明:數(shù)據(jù)不包括第方安卓渠道。米哈游《原神》移端以近 1.9 億美元的收入位列榜單第 2 名,其中,47% 的收入來自中國 iOS 市場,日本市場的收入占 20.9%。騰訊《PUBG Mobile》(合并《和平精英》收入) 以超過 1.8 億美元的收入位列榜單第 3 名。其中,67% 的收入來自中國 iOS 市場,美國市場的收入占 7.6%。榜單前五另外兩款游戲為 King《Candy Crush Saga》和《Roblox》。IT之家了解到,2022 年 12 月,全球手游玩家在 App Store 和 Google Play 付費超過 67 億美元,同比下降 7.6%。美國依然是全球移動游戲收入最高的市,貢獻了 19.6 億美元,占全球總收入的 29.2%。日本市場排名第 2,占 18.5%;中國 iOS 市場排名第 3,占 17.2%。由韓國 Shift Up 工作室研發(fā)、騰訊海外發(fā)行卑山牌 Level Infinite 發(fā)行的二次元射擊手游《GODDESS OF VICTORY: NIKKE》(勝利女神:妮姬) 12 月表現(xiàn)穩(wěn)定,全球吸金超過 7000 萬美元,位列榜單第八名。其中62.4% 的收入來自日本市場,14.4% 的收入來自美國市場,韓國市場的收入占 10.9%。12 月 8 日,游戲新活動「MIRACLE SNOW」上線,作為《 Nikke 》上線后首次大型限時活動,官方在次更新中引入了限定角色與新地等多種元素。在活動開啟當天,戲登上日本 App Store 暢銷榜榜首。僅 12 月 8 日-9 日兩天,《 Nikke 》全球收入接近 740 萬美元? IT之家 1 月 11 日消息,美國聯(lián)邦航空局(FAA)自 2015 年以來就不斷發(fā)出擔憂,5G 基站發(fā)出的信號可能會干擾飛機的度計。但這個問題始終沒有到妥善的解決,F(xiàn)AA 決定再給航空公司將近 1 年時間,將相關飛機整改方案推到 2024 年 2 月。IT之家小課堂:由于有線和光纖獂視服務的普及,衛(wèi)星視服務已基本退出美國舞臺這意味著 FAA 可以釋放衛(wèi)星電視服務的頻譜,用于它用途。聯(lián)邦通信委員會(FCC)決定著這些無線電頻率的使用,該倍伐員會決定這些率適合 5G 使用,并拍賣了這些頻率的鬻子用權。Verizon 和 AT&T 共同斥資 6800 萬美元購買了當時被稱為 5G C 波段的權利。不過在拍賣結之后,美國的另一家機構聯(lián)航空管理局(FAA)跳出來表示 5G C 波段會干擾無線電高度計,因炎融可能會脅到現(xiàn)有航班的起降。目前國對 50 家主要機場實施了臨時 5G C 波段限制,并要求航空業(yè)在 2023 年 7 月之前檢查其舊飛機,并根據(jù)需要更新無饒山電度計?,F(xiàn)在 FAA 再次推遲這個時間,將截止日期鳳鳥到 2024 年 2 月。航空業(yè)在去年 10 月就辯稱臨時限制不會對任何人造任何傷害,而且解決這個問的成本很高,那么為什么不功率限制永久化呢?然而,國聯(lián)邦航空局拒絕了這一點而是給了航空公司更多時間國外科技媒體 ArsTechnica 報道稱:今天,美國聯(lián)邦航禺強局提出了 2024 年 2 月 1 日的最后期限,以更換或改裝飛用于測量高度的故障高度計美國聯(lián)邦航空局表示,在美登記的 7,993 架飛機中,它估計大約有 180 架飛機需要更換無線電高度,820 架飛機需要增加無線電高度計濾波器以那父合擬的修改要求??偤弦?guī)成本估為 2600 萬美元。 IT之家 1 月 10 日消息?微軟中國官方商城于 1 月 3 日 - 2 月 1 日期間開啟新年鉅惠享不停活壽麻,活動間,新品 Surface Pro 9、Surface Laptop 5 享教育優(yōu)惠 9 折及購機好禮,折扣專區(qū) Surface Laptop Studio、Surface Laptop Go 2、Surface Laptop 4、Surface Go 3、Surface Pro 8 等主機 6.4 折起,認證翻新 Surface 主機全場 4.5 折起,全場 24 期免息:點此前往。活動內容:1、代表優(yōu)惠機型Surface Pro 9 系列:新品享教育優(yōu) 9 折及購機好禮,還有 5G 版可選;Surface Laptop 5 系列:新品享教育優(yōu)惠 9 折及購機好禮;Surface Laptop Studio 系列:活動套餐 9.4 折,隨單贈多重好禮;Surface Laptop Go 2 系列:購機 9 折起,隨單贈多重好禮Surface Laptop 4 系列:購機 8.5 折起(部分配置 6.4 折,暫時缺貨),隨單多重好禮;Surface Go 3 系列:購機 9 折起,隨單贈多重好禮;Surface Pro 8 系列:活動套餐 7 折,隨單贈多重好禮;Surface Pro X 系列:購機 7 折起,隨單贈多重好禮;2、翻新機優(yōu)惠認證翻新 Surface Go 3 系列:購機 7.2 折起,24 期免息;認證翻新 Surface Laptop 4 系列:購機 6.2 折起,24 期免息;認證翻新 Surface Laptop Studio 系列:購機 7.7 折起,24 期免息;認證翻新 Surface Pro 7+ 系列:購機 7.5 折起,24 期免息;認證翻新 Surface Laptop Go 2 系列:購機 9.2 折起,24 期免息;認證翻新 Surface Go 2 系列:購機 6.6 折起,24 期免息;認證翻新 Surface Laptop 3 系列:購機 4.5 折起,24 期免息;認證翻新 Surface Pro X 系列:購機 5 折起(部分配置 4 折,暫時缺貨),24 期免息;本文用于傳遞優(yōu)惠信息陸吾節(jié)省甄時間,結果僅供參考【廣告? 感謝IT之家網(wǎng)友 神里綾華的狗 的線索投遞!IT之家 1 月 12 日消息,由于疫情等原因,騰訊會議在過去三年間里迅速崛起,甚至一躍成為 CSIG 乃至騰訊內部的明星產(chǎn)品,無論是在學校網(wǎng)課還是程辦公等場景中都頗受青睞,在 To B 業(yè)內備受關注。據(jù)雷峰網(wǎng)稱,在騰訊云放棄總集成角色,專注自研與標品后騰訊會議十分受重視,甚至湯生每周會親自召開騰訊會議專會,盯業(yè)務進展,其他產(chǎn)品很有這一待遇。報道稱,騰訊會或將在 2023 年全面取消免費版,而該政策正是由騰訊 CSIG 掌門人湯道生所提議的。消息人士表示,騰訊會議 2022 年總營收約為 4.3 億元,對比去年年初定下的 4 億 KPI 來說算是 CSIG 手中少有的超預期業(yè)務,而他們直接給騰訊會議定了 10 個億左右的 2023 年營收目標,決心要做出比 2022 年翻倍還要高的成績來。IT之家查詢發(fā)現(xiàn),目前騰訊會議、比翼業(yè)微信、飛書、釘?shù)犬a(chǎn)品是市面上最受歡迎的類產(chǎn)品,其中釘釘策略為“基功能免費,企業(yè)辦公訴求收費包括存儲空間、專屬定制、專安全等”;飛書個人用戶同樣著免費的標準版,支持語音轉字等功能,而 1080P 高清畫質的視頻會議功能需要升 1440 元 / 人 / 年的企業(yè)版或 2400 元 / 人 / 年的旗艦版才能用,付費版本目前歸山向個人開放而騰訊會議則在去年年底上線 30 元 / 月的個人會員,可以無限制使用語音實南岳轉和自動會議紀要,而且可以設 2 名聯(lián)席主持人,提供 20GB 云錄制空間等功能?!?騰訊視頻個人會員▲ 釘釘會員除此之外,騰訊會議本身就面向企業(yè)的業(yè)務,例如視頻會商業(yè)版 4788 元每年,支持 1080P 視頻畫面等,企業(yè)版可根據(jù)需求進行定制。息人士稱,騰訊會議去年僅僅個人會員營收就達到了 6000 萬元左右,收效顯著,這也是騰訊會議此前被業(yè)人魚視為國視頻會議 SaaS 付費的市場教育先行者的因素之一?
IT之家 12 月 28 日消息,據(jù) OpenHarmony 發(fā)布,福州匯思博信息技術有公司(簡稱“匯思”)推出的泰山飛系列 FHSmart100 開發(fā)板順利通過 OpenAtom OpenHarmony(簡稱“OpenHarmony”)3.1 Release 兼容性測評,并獲得 OpenHarmony 生態(tài)產(chǎn)品兼容性證書。泰山飛鴻 FHSmart100 開發(fā)板是基于展銳 SL8541E、UIS8581E、UIS7862S 設計的一款智能終端開發(fā)板,支持主可插拔,即用戶可由選配 SL8541E、UIS8581E、UIS7862S。開發(fā)板還搭載了匯思博研發(fā)的,于 OpenHarmony 標準系統(tǒng)的 FlyHongOS Smart 軟件發(fā)行版。此外發(fā)板還可自由選搭 TMC THM3652 SE 安全芯片,可支持金融安級的數(shù)據(jù)保護和業(yè)處理能力,如 SAM 卡、IC 卡、非接觸 IC 卡、熱敏打印、密鑰及感數(shù)據(jù)保護等。IT之家獲悉,基于可拔式主板設計及可展的金融級安全能,泰山飛鴻 FHSmart100 開發(fā)板可適用于金融政務、工業(yè)、電力礦業(yè)、教育、公路通、汽車電子等諸行業(yè)的智能終端設,如:支付 POS 機、商用設備、自助服窮奇終端、智能育終端等產(chǎn)品。泰飛鴻 FHSmart100 開發(fā)板亦可廣泛用于其他智終端類產(chǎn)品。目前匯思博已有 10 款產(chǎn)品通過了 OpenHarmony 兼容性測評,其中包含 2 款軟件發(fā)行版、1 款開發(fā)板,以及 7 款聯(lián)合合作伙伴推出的旄牛設備產(chǎn)品?
IT之家 1 月 12 日消息,中通訊今日舉發(fā)布會,正推出基于第代英特爾至可擴展處理(Sapphire Rapids)的 G5 系列服務器新品中興通訊表,此次發(fā)布服務器新品計 5 款,包括 R5200 G5 高密度服務、R5300 G5 全場景通用服務、R5500 G5 海量存儲服務器R6500 G5 異構算力服務器和 R8500 G5 高性能服務器。據(jù)紹,中興通 G5 系列服務器新品用最新的英爾至強第四可擴展處理,內置加速擎,雙路最支持 120 核。搭配高內存帶寬設,提供 32 條 DDR5 內存插槽,速率最高達 4800MT / s,帶寬性能升 50%,支持英特爾騰內存 300 系列 (Crow Pass),同時全新 PCIe 5.0 使 IO 帶寬提升 150%。IT之家了解到中興通訊稱 R6500 G5 異構算力服務器內 10~20 個異構計算智能加速引,根據(jù)不同用場景,靈調度各種不的異構算力源。與此同,G5 系列服務器新品備靈活擴展力,以 R5300 G5 為例,最大提供 41 個 2.5”盤位或 20 個 3.5”盤位 + 4 個 2.5”盤位,提供高速 I / O 接口,基于硬件塊化和軟件臺化設計。他方面,中通訊?G5 系列服務器品在散熱設、電源模塊主板布局等面進行多重化,電源模支持 1+1 冗余,風扇支持 N+1 冗余,關鍵部件硬盤、源等支持熱拔?
本文來自微信公眾女媧:并發(fā)編程 (ID:dibingfa),作者:閃客原文標題:《山經(jīng)管破玩意叫指針?》本系分三篇,用破玩意的方徹底理解好指針的本質你管這破玩意叫指針 -- 基礎篇你管這破玩意叫指驕山 -- 進階篇你管這破玩意叫指針 -- 變態(tài)篇話不多說,開始!內存,通歸山被嚴謹?shù)?成下面這個樣子,一從從方是低地址上方是高地的格子樓。但我今龍山換畫法,畫成下面這個樣。每個格子代表內存中 1 個字節(jié)(8 位),格子上的數(shù)字就代朱獳存地址,我也直接用 10 進制來表示了,免得 16 進制又算不明白了。目前內存是?山全空,格子里沒有任何內容試想一下,如果你忘掉有的語法規(guī)則和編程規(guī),你會如何描述對這些存格子的操作呢?一舜型系統(tǒng)很簡單,往格子 3 處放個數(shù)字 29,往格子 6 處放個數(shù)字 38,就這么簡單直接地描述即可基山但是這樣話太麻煩了,什么往驩疏 3 處放個數(shù)字 29 的,廢話太多,也不方老子不講感情的計算機王亥解。那我們就定個指令使用 mov $x, (y) 表示把數(shù)字 x 放入格子 y,如下:mov?,?(3)mov?,?(6)這就表示剛剛說的:把數(shù)字?29?放入內存格子?3把數(shù)字?38?放入內存格子?6是不是太簡單了?別急,列子戲上開始!如果要把數(shù)字 999 放入內存格子 8,該怎么辦呢?由于 1 個格子表示 1 個字節(jié),只有 8 位,因此只能表示 256 個數(shù)字,要么是有符號颙鳥 -128 ~ 127,要么是無符號的 0 ~255,顯然數(shù)字 999 無法放在 1 個格子內,只能占用 2 個格子了。那也好辦,就么說,把數(shù)字 999 放入格子 8,連續(xù)占用兩個格子。但梁渠樣,我剛剛的 mov 指令就得改改了,不但要昌意示 "存放" 這個含義,還得表示占孟鳥了多少個格。我們用 movb 表示只占 1 個字節(jié),用 movw 表示占用 2 個字節(jié)。那么,剛剛赤鷩三個數(shù)字,就分別猼訑這樣用指令來表示了:movb?,?(3)movb?,?(6)movw?9,?(8)含義就是:把數(shù)?雨師29?放入內存格子?3,占?1?字節(jié)把數(shù)字?38?放入內存格子?6,占?1?字節(jié)把數(shù)字?999?放入內存格子?8,占?2?個字節(jié)OK,既然有了 1 字節(jié)和 2 字節(jié)的的指令,不妨鹓設計下, movl 表示 4 字節(jié),movq 表示 8 字節(jié) ...movb?占用?1?字節(jié)movw?占用?2?字節(jié)movl?占用?4?字節(jié)movq?占用?8?字節(jié)不知不覺,類型系統(tǒng)被你悄悄設計出來媱姬!然,雖然這只是個半成。二、變量你不斷地往同格子里放數(shù)據(jù)。比如把我的年齡放在 11 號格子(占 1 字節(jié)),把我的月薪放在 14 號格子(占 4 字節(jié))?,F(xiàn)在我們的列子存已非常混亂了,你根本記住原來的 3 號格子放的數(shù)據(jù)表杳山什么,11 號格子又表示什么,只通過看數(shù)字知道 14 號格子里放的確實是我月薪。這該怎么辦黑狐?加一層抽象嘛!我們給些放了我們數(shù)據(jù)的格子都貼上個標簽,就可以用再記那些無意義的格編號了。這樣以來,其我們也不再關心,這些簽到底在哪個格子里歷山要給我找到格子把我的據(jù)放進去就可以了靈恝movb?,?amovb?,?bmovw?9,?cmovb?,?agemovl?47483647,?salary當然,我還需要再通季厘這個標簽,把我剛放進去的數(shù)據(jù)找出來。很簡單,但存在一個讙,放進去的時候,我們以通過 movb,movw,movl 等知道占用多少個格子。而取來的時候,標簽上象蛇沒寫這個數(shù)據(jù)占用了多少格子,這是有問題的。此,在定義這個標簽時不能光取個名字,還需有個信息就是,這個標對應的數(shù)據(jù),占了多少格子。我們就效仿剛跂踵存放操作,也規(guī)定一系單詞,來修飾這些驩疏簽表示占用了多少個格子char 表示 1 個字節(jié),short 表示 2 個字節(jié),int 表示 4 個字節(jié),long 表示 8 個字節(jié) ...于是乎剛剛的 5 個數(shù)據(jù),就可以表示為如鴸鳥指令:char?a?=?29;char?b?=?38;short?c?=?999;char?age?=?18;int?salary?=?2147483647;行了,我也別藏著掖著狌狌,相信大家知道,這里就是 C 語言的寫法,而剛剛那堆 mov 是匯編語言的寫法。義均些 char a,char b,int salary 等,就是變量!記蛩蛩,變量不要有名字,還得有類讙三、變量定義與賦值其,剛剛的寫法,是女英變的定義與賦值操作寫在行了。比如有如下語句int?a?=?1;實際上是分成兩步的://?變量的定義int?a;//?變量的賦值(此處也可勞山叫變量的初始)a?=?1;其中變量的定義是為朏朏方便程序后面去用它,這部分役采給 CPU 看的。而變量的賦值才是真正在內中把數(shù)據(jù)放進去,這部才真正涉及 CPU 具體指令的執(zhí)行。也鳳鳥是,如果你僅僅定義了一變量 int a; 但是沒有給它初始化的賦操作,那么最終在 CPU 執(zhí)行指令的時候,這個定義根本強良沒有任何現(xiàn)。四、指針現(xiàn)在,狂山們把內存清空,回到一始的那一片凈土上首山我來搞點花樣。我將我的碼(1234)存儲在一個 short a 中,假設這個變量 a 被放在了 6 號格子處。同時,我將這個變旄馬 a 的地址,也就是 6 這個數(shù)字,存儲在另一變量 int p 中,假設這個變量 p 被放在了 1 號格子處。這樣,孟槐尋找我密碼的方,就是先通過 p 所在的內存地址找到里面存值,也就是 a 的內存地址 6,再通過 a 的內存地址找到里面存值,也就是我要找丙山密 1234。我們可以用下面的代碼來表示剛剛存放邏輯。short?a?=?1234;//?假設?a?被放在了?6?號格子處int?p?=?6;這里的 p 和 a 都是變量,只不過,p 這個變量有點特殊,它里面存放的值白鹿個內存地址,我們把 p 這個變量形象地成為指鯥變量,簡稱指針。窺窳,這樣有幾個問題,我個個來說。1. 取地址首先,我們在慎子碼階段無法知道也無需知道變 a 會存放在哪里,不然就失成山了標簽的含義又回到了需要關心具體內存地址(也就是格子號)的時代了。所以,們應該有個方法,來在碼階段表示變量 a 的地址的含義,姑且就叫 &a 吧。那么我們的代碼,就可顓頊優(yōu)化為:short?a?=?1234;//?假設?a?的地址是?6//?那么下面的?p?就等于?6int?p?=?&a;用圖來表示就是:2. 指針變量本身的大小服山放到這個變量 p 身上,雖然本質上這個變量 p 里面存放的就是一個數(shù)值,假設是 6,但是它卻表示了孟子個內存地的值。如果讓程序員狍鸮規(guī)定這個變量 p 的數(shù)據(jù)類型(也就是占多少字節(jié)),那顯然容易出題。比如內存地址是 999,那么我用一個 char 類型的變量 p 來存放它,就會有問題。我窫窳在編碼階段是無確定一個變量的內存地是多少的,所以用什么型的變量來存放它,也無法判斷的。所以,周禮妥的辦法就是,用一個全能容納所有內存鯥址圍的變量類型來存放指變量。我們姑且認為我是在一個 32 位的系統(tǒng)上,那么用一個 4 字節(jié)大小的變量來存放就可以了。(當然,實上這取決于你的編譯器位數(shù))現(xiàn)在,我們的指變量所占用的內存大小就是固定的 4 個字節(jié),也就是 4 個格子。程序員無需昌意無法修改個大小,那么我們就羽山把 p 前面的數(shù)據(jù)類型去掉鳧徯。short?a?=?1234;p?=?&a;3. 指針變量的類型剛剛驕山們解決了針變量本身所占用的鯢山大小,但是還有一個問沒有解決,就是指歷山變里存放的內存地址處的量的大小。也就是說,面的指針變量 p 里雖然存放了變量 a 的內存地址 6,但是指針變量 p 卻沒有任何信息,來說帶山內存地址 6 處的變量,它的大小是少。假如,我們認為內地址 6 處的變量是個 char 類型,也就是只占用了鯩魚個字節(jié),么顯然,會取出一個白翟合預期的值。當然,如認為 6 處的變量是個 int 類型,占 4 個字節(jié),雖然數(shù)值上可能沒昌意問題,但從某種度上講也是不太符合預的(假如 8 號和 9 號格子里有其他內容,那就更不符合美山期了)所以,必須得完全按照量本身的類型,也就是 short 類型來讀取此內存地址處的值,才正確的。那我們應該如表示這個信息呢?即鱃魚表示,變量 p 是一個指針,且這個指針里面放的內存地址處的變量類型是 short。很好辦,直接說答案白鵺。short?a?=?1234;short?*?p?=?&a;p 前面的 * 表示變量 p 是一個指針類型,再前的 short 表示該指針指向的內存地址夷山變量,是個 short 類型的變量。當然,更大學確的說法是,指針 p 將會按照 short 類型的變量來讀取它指向的內戲,至于那里到是什么,無所謂。注意,這個 short 并不是表示指針變量本天山大小占 2 個字節(jié),指針變量本身我們前面說了,就是固定的 4 字節(jié)大小。不過總是這樣太繞口了,今后我魃就,變量 p 是個 short * 類型的指針,就可以了。用上番禺的形象地說就是,右邊變 a 藍色的填充,表示 a 是個 short 類型,而外面的虛線框框文文表示指針 p 按照 short 類型的變量來 "解讀" 內存地址 6 處的數(shù)值。兩者相匹奚仲了,就是 "正確" 的編程代碼了。當然,這里的 "正確",是說給程序員聽的,CPU 才不關心。4. 指針所指向的值上面我們已可以獲得某個變量的地,比如獲取 a 的地址就是:&a同時我們也可以定義一個泰逢針變量,如定義一個 short * 類型的指針變量 p:short?*?p;并且,我們通過直接賦值嚳作,可以給指針變進行初始化:p?=?&a;當然,上面的代碼也可羆連起來寫,即指針量 p 的定義與初始化寫在同鳧徯行:short?*?p?=?&a;不過,我們還沒有一夫諸方,來表示指針變量 p 所指向的那塊內存。那們就發(fā)明一個,比如想 p 所指向的那塊內存的值改為 999,可以這樣寫。*p?=?999;這里的 * 就表示 "指向" 的含義,即 *p 不是說 p 這個變量的內存地址,而把 p 這個變量里存的內容當做內存地址?鳥看指向這個內存地址。用表示就是:所以連起來個完整的程序就是:short?a?=?1234;//?指針的定義short?*?p;//?指針的初始化,也即針變量本身的值p?=?&a;//?指針變量所指向的天狗存地址的值*p?=?999;執(zhí)行過后,a 的值會變成 999,或者說 6 號格子與 7 號格子里的值會變成 999。5. 指針的加減如果對一個柜山變量 +1,比如說:int?a?=?1;int?b?=?a?+?1;那顯然,b 的值應該是 2,毫無疑問。但是如果對孟涂個指針變量 +1,會怎么樣呢?int?a?=?1;int?*p?=?&a;int?*p2?=?p?+?1;我們假設變量 a 放在了格子 1 處。變量 a 的值是什么,以及變量 p 被放在了哪里,我巫抵都不關心,就盯著 p 的值看,顯然,一開始的少鵹候是 1。(為方便演示,下面的直接表示 p 所指向的內存地址,耆童不是 p 本身所在的內存地址)們先不考慮,p + 1 應該是幾,如果讓你來設計這雍和語言,你覺得 p + 1 是幾比較好呢?我認為,只有黃山種為合理的設計。第一種p + 1 就等于 2,就簡簡單單當做數(shù)值行加法運算而已。第狪狪,p + 1 等于 5,即跨過一個 p 所指向的內存單元的數(shù)據(jù)屈原的大小,也就是 4 字節(jié)的 int。你覺得那種比較合理呢?那顯蔿國第二種嘛!不然和普通量有啥區(qū)別了,你嫗山然計出了指針變量這個玩,就需要讓它發(fā)揮點方程序員的作用,這才是設計它的真正目的。當你不服,你就想讓這個 int * 類型的指針變量,就真真戲正在數(shù)上只 +1,也就是讓 p 等于 2,該怎么辦呢?很簡單,夫諸成三步好了:第一步,把 int * 類型的 p 強轉為 char * 類型的 p。第二步,p + 1。第三步,再把 char * 類型的 p 強轉為 int * 類型。完事!用代碼表示就是曾子p?=?(int?*)((char?*)p?+?1);你會看到,C 語言項目中經(jīng)常使用這石山的玩法。當,你這一頓花里胡畢文的作,在 CPU 眼里,就是對一個內存地址處值簡簡單單地 +1 而已。五、指針的本質我看上面的一張圖:其實別看上面又 short * p 又 short a 的,這是給程序員和編譯器蓐收的。在 CPU 眼里,根本沒有這些諸懷花繚亂的標簽,以五花八門的解讀,就是 0 ~ 4 號格子里存了個數(shù)字 6,然后 6 ~ 7 號格子里存了個數(shù)字 1234,僅此而已。更進一步講,其就只是 1 號格子里存儲了數(shù)字 6(234 號格子是空的),6 號格子里存儲了數(shù)字 12,7 號格子里存儲了數(shù)字 34。(當然實際得轉換成二進足訾,再結合端序還是小端序來看墨子我這里就是簡單直觀告大家 CPU 才不管那么多,就一個廆山子一個子的放數(shù)字就完事了)以,我們經(jīng)常聽書上講讓大家一定要記住,駱明變量中只能存放地址,要將一個整數(shù)或任講山其非地址類型的數(shù)據(jù)賦給個指針變量了。這種說就非常別扭,很多書上即想講清楚指針的本質又想講清楚指針的注意項,混雜在一起,讓讀即沒有搞清楚指針的淑士,又不知道指針的注意項。真糾結!說實鳴蛇,光看書而沒有經(jīng)過大量 C 語言的實踐,誰能類得住或者理解透徹羲和些意事項。而經(jīng)過大量 C 語言實踐的人,指針視山就融入進血液中了洹山誰來看你講指針的本質?以說,這塊我覺得非常矛盾。實際上,指針變的本質和普通變量是一的:普通變量,寫個 short a,是在告訴編譯器,當我 a = 1 時,你給我找到一塊 2 字節(jié)的內存,把 1 填充進去。指針變量,寫個 short * p,是在告訴編譯器兩件事情孫子當我 p = xxx 時,你給我找到一塊 4 字節(jié)的內存(我們假設指針刑天身的大固定 4 字節(jié)),把 xxx 填充進去,這就和普通變量完豪山一樣;我 *p = yyy 時,你給我找到 xxx 內存地址,并且按照 short 類型也就是 2 字節(jié)大小,把 yyy 填充到這里。所以,誰說不能把一卑山整型量賦給指針了,我這不把一個整型變量 xxx 賦給指針 p 了么,我賦值的時候就說它是型變量了,怎么的吧?是我用它的時候,我 *p 又把 xxx 看做是一個內存地翳鳥了,就找內存 xxx 的地方,又怎么的吧?用媱姬碼表示就是:我強行把一整型數(shù)值 6 賦值給指針變量 p,然后 *p 去訪問內存地址 6 并修改那個地方的值:int?*?p?=?6;*p?=?999;我還可以把一個地址值,強賦值給一個普通變申鑒:int?a?=?1;int?b?=?&a;這時普通變量 b 里面存儲著 a 的地址,我 *b 也同樣可以訪問到 a 并修改它的值:*b?=?999;當然如果你真這么寫編譯器會報,但沒關系,我們可以把普通變量 b 強轉為指針變量,然后尚鳥 * 它:*(int?*)b?=?999;你還可以玩些更花哨的,先 & 取地址,再 * 取值,雖然沒啥用:*((int?*)*(&p))?=?999;假如 a 的地址是 6 的話,其實你這些花里胡鸚鵡的操,最后到人家 CPU 眼里,就是一條簡單數(shù)斯令:movl?9,?(6)就是想把 999 放在 6 號格子嘛!所以,不要尚鳥指針得多么復雜和神圣,它是方便了程序員編程,時告訴編譯器應該怎么譯成最終的指令。你寫個 *p,就是把 p 的值當做內存地址去訪,在匯編語言層面就是了個括號:p)你寫了個 &a,就是取出變量 a 的內存地址,在匯編盂山言層面就是 lea 指令:lea?a,?xxx你如果寫了個 ***p 那就是,相當于加了飛鼠次括號:((p)))當然啦,以上都是方便理解的偽指令?山具體落到真正的匯編語言,我在后續(xù)的章節(jié)中講述,接從匯編語言理解指唐書你就會發(fā)現(xiàn)指針就是個具人而已。六、寫萊山最至此,我們的《你管這玩意叫指針 -- 基礎篇》就講完了。我們從開始的內存格子出發(fā)陳書漸推導出類型系統(tǒng)和變的作用,進而再引竊脂本上和普通變量沒有任何別的指針變量,最后再導出指針變量相關的操,帶你看清了指針的本。你不要去記本文的知點,重在整個推導的過,要去理解指針想解長乘問題是什么,它的合理在哪,哪一部分信殳是程序員和編譯器看的,一部分操作最終又是真落實到 CPU 指令的,這些才是關鍵。當?shù)ぶ?我還是給你簡單總結下識點相關的部分,猙實單說,就這么幾件事。義一個指針:int?*?p;賦值或初始化一個指針:p?=?&a;修改指針的內容:*p?=?999;指針的加減(其實到后面講精衛(wèi)數(shù)組才價值):p?=?p?+?1;完事,就這些!最后,給大家推儀禮兩個網(wǎng)。一個是可以將 C 語言代碼實時編譯成旋龜編碼,你可以用它來自己指針做實驗,看它最終 CPU 指令層面是什么樣。https://godbolt.org一個是 GNU C 手冊,里面對各種語法和用講述的非常清楚,不再用搜索引擎搜博客了https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html比如講類型系統(tǒng)里的整文文類型:再比如指針的定義和初始化:相信本文看下來,一定人想問,short * p 是不是應該寫成:short?*p或者short*?p自己去上面的文檔里找答申子即可OK,本文到這里就終于陸山結束了,在接下來貍力階篇里,我會講述二級針、數(shù)組、函數(shù)指女虔、符串、結構體、結構體組與指針等內容。雖然是進階篇,但我認為,針的本質反而是進階,指針的進階反而是基礎因為假如理解了上述的切,下面的所謂指針服山玩法,都可以通過指針本質以及語言設計盂山合性,推導出來,再往后非是需要花時間熟練使和掌握罷了。所以,理好今天的內容,非常重?
圍棋這項離大多數(shù)的生活都有些距離運動,在B站上已經(jīng)火了有一段時間了自圍棋八冠王柯潔隱微博入駐B站以來,“名人效應”為個平臺的圍棋內容來了不少新鮮流量但如果在B站搜索柯潔,你已經(jīng)很難找他正經(jīng)下圍棋的內,最顯眼的往往是量直播切片視頻,些視頻通常與“抽”“逆天”等詞匯鉤,播放量也相當觀,動輒上百萬。潔直播事業(yè)的成功他世界級選手的身不無關系,不過作當今棋壇的領軍人,他的“抽象圍棋還是實打實地影響中國圍棋直播界的狀:二段棋手戰(zhàn)鷹靠直播實現(xiàn)了粉絲量的十倍增長,圣節(jié)之際,她順利躋“千艦名人堂”;段棋手連笑,曾一離開圍棋直播界,今掌握了抽象圍棋他,在跨年夜狂砍 2600 個艦長,一度登頂B站直播熱度榜。新浪棋牌評戰(zhàn)鷹為 2022 年度圍棋人物過去幾個月里,圍棋直異軍突起,在中國棋圈內刮起一陣抽直播新風潮。這些播間通常都有一個同點:盡管直播內仍以圍棋為主,但幾乎沒人在認真討圍棋。圍棋火了,火的好像也不是圍。1除開八冠王柯潔,當今中國圍棋界頂流,或許是戰(zhàn)鷹位“邊緣”棋手。圍棋等級分統(tǒng)計網(wǎng) GoRatings 來看,在近期參加過比賽的 874 位活躍棋手里,戰(zhàn)鷹以等級分 2856 分位居 697 名,這個成績對職業(yè)棋手來說,肯定不上多好看。戰(zhàn)鷹等級分一直在往下,出道即巔峰在戰(zhàn)的這幾年主播生涯中,她體會過虎牙播時期的默默無聞也經(jīng)歷過轉戰(zhàn)B站后的無人問津,直到個月前的一次無心侃,才讓她的直播了起色。戰(zhàn)鷹的成其實是個很偶然的機,從B站粉絲增長數(shù)據(jù)統(tǒng)計來看,戰(zhàn)的第一波人氣爆發(fā)現(xiàn)在 10 月 16 日附近,這個時間段正是她銳評柯“有才無德”的直切片開始受到關注時期。戰(zhàn)鷹自己大也沒想到,自己勤懇懇播了這么幾年最后竟會因為這種式小火一把。“蹭柯潔熱度并非戰(zhàn)鷹意,畢竟在中國聊棋,柯潔終究是個不開的話題,根據(jù)B站用戶“2-16 勇奪第一”的數(shù)據(jù)計,在戰(zhàn)鷹兩年半 118 場直播里,提到柯潔的直播了 115 場,如今戰(zhàn)鷹的粉絲群體成,很大程度上與潔的抽象直播脫不干系。當然,只靠評柯潔注定是走不遠的,在這之后,鷹很快找到了自己直播風格,整出了以出圈的好活:被吧老哥氣到破防。情是這樣的,在戰(zhàn)一戰(zhàn)成名小有名氣后,圍棋貼吧里的位吧友注意到了這名不見經(jīng)傳的棋手考慮到戰(zhàn)鷹的比賽績并不理想,貼吧哥們的言論必然也會太好聽,看熱鬧嫌事大的粉絲慫恿鷹去看看貼吧小黑如何銳評自己,結自然是可想而知。不少人心里,圍棋一項有著一定“逼”的競技體育類項,與之對應的圍棋手們也該是清心寡、與世無爭的形象而戰(zhàn)鷹在直播中由怒轉為沉默再到掩落淚的心路歷程顛了大眾對于棋手的板印象,原來“主被活活罵哭”這種,真的會發(fā)生在一圍棋職業(yè)選手身上中國象棋第一人王一也注意到了戰(zhàn)鷹防事件,就此誕生“邊緣棋手”這個破防事件之后,戰(zhàn)在觀眾和粉絲眼里又菜又愛玩”的形愈發(fā)明晰。在后續(xù)連數(shù)次與柯潔的連互動中,戰(zhàn)鷹都以姿態(tài)經(jīng)受著直播間象老哥和圍棋第一的高強度拷打,她生熱情搞怪的性格更是在無形之中放了喜劇效果。在出之前,戰(zhàn)鷹的節(jié)目果就已經(jīng)足夠抽象象圍棋的效果立竿影,但粉絲數(shù)飛漲戰(zhàn)鷹并未徹底放飛我,與觀眾整蠱性的互動是她的特長堅守棋手尊嚴的樣同樣是大家喜歡她原因。出圈之后的鷹做起了“圍棋入小課堂”,通過簡易懂的教學視頻為懂圍棋的觀眾科普礎規(guī)則,與直播間那個跟觀眾插科打的主播判若兩人。快樂圍棋”、“成圍棋”、“抽象圍”,都不過只是引手段,戰(zhàn)鷹反復強,她的最終目的是了傳播圍棋文化,更多人接觸了解圍,盡管直播間里的多數(shù)觀眾根本就不奔著圍棋而來。暫不談戰(zhàn)鷹的直播到有沒有成功推廣圍,起碼在B站這個平臺,圍棋主播找到一條全新的出路。2抽象圍棋的故事并止步于戰(zhàn)鷹圣誕節(jié)千艦,在幾天前的年夜,九段棋手連收獲了 2641 位艦長,這個數(shù)字放到整個B站直播圈里也排得上號。與娛樂主播”戰(zhàn)鷹不的是,連笑是個名其實的技術主播。天元”、“名人”“棋圣”,這些響當?shù)念^銜都曾屬于笑;圍棋等級分排榜上,巔峰不再的笑仍能排在世界第 26 名,雖然沒能將世界冠軍的榮譽入囊中,但連笑的績已經(jīng)足夠耀眼。峰時期的連笑在國接連拿下 10 個比賽冠軍可即便是如連笑,在血雨腥的直播行業(yè)里,他還是難免有些力不心。根據(jù)連笑去年 12 月 30 日的直播透露,他曾B站簽下直播合同,旨在傳播推廣圍棋化。兢兢業(yè)業(yè)的連在過往的直播中專講棋,用心科普,因直播內容乏味,人不善言辭等原因致人氣低迷。最終B站選擇了解約,連笑也就此失去了圍主播的這份兼職。笑直播遇冷并不稀,要知道一般路人于中國圍棋選手的解,除了柯潔,大也就只剩下聶衛(wèi)平古力等老牌棋手。際上在戰(zhàn)鷹成名之,她的直播數(shù)據(jù)就經(jīng)比連笑亮眼,戰(zhàn)尚且懂得取悅觀眾而連笑是真的只下棋。棋圈有個共識棋下得越多,流量越少??聺嵑蛻?zhàn)鷹后用自己的實際行證明了這條鐵律,笑也就此加入了“務正業(yè)”的大軍。象圍棋的確給連笑來了一次全新的機,他放棄了傳統(tǒng)的棋直播,除了下圍,其他干什么都行在戰(zhàn)鷹柯潔的聯(lián)合流之下,連笑的直數(shù)據(jù)已不可同日而,元旦佳節(jié)之際,笑在沒有事先準備情況下,僅以口頭布“上艦就送簽名”,不料直播間內艦長數(shù)量以秒為單瘋狂增長,不小心了當晚B站直播頂流。這一晚,史稱圍圈的“抽象之夜”簽名、簽字扇是圍圈的傳統(tǒng)禮物,圍雜志《圍棋天地》十幾年前就曾售賣眾多知名棋手的簽扇。盡管這些扇子的字跡都是棋手親簽字后的量產(chǎn)印刷,但在那個年代仍賣出 150 元一把的高價。B站開通一個月艦長的費用 138 元,即便是忽略這些年來的貨膨脹,花這點錢一把頂級棋手的簽扇,也絕對算是“了個大漏”。不僅成群涌現(xiàn)的艦長,是為連笑開通價值 1998 元的提督的觀眾,得到了與笑下一場指導棋的格。從各方專業(yè)人提供的價位來看,笑這種級別的棋手供的指導棋,起步恐怕是數(shù)千元。不再怎么說,連笑終還是靠一手抽象圍帶火了自己,如果是往日里那個光顧下棋的他,肯定無在直播行業(yè)復現(xiàn)今的成績。連笑的成證明了一個道理:便你不如戰(zhàn)鷹那般整活,抽象圍棋還能捧紅你。從當初據(jù)太差被解約,再如今光速兩千艦,B站圍棋主播,開始面朝著抽象的方向展。3職業(yè)棋手全面轉型主播并非是天夜譚般的妄想,考到近些年來中國圍的現(xiàn)狀,直播很有能是提供給棋手們一條“求生之路”自疫情以來,國內行各業(yè)過得都不是滋潤,這其中,本不景氣圍棋行業(yè)更雪上加霜。疫情限了大批棋手的出行讓以線下為主的圍比賽舉步維艱,盡線上圍棋是一條可之道,但作弊、設等相關問題卻遲遲以解決。此前的疫,對中國棋手的影尤為明顯。2022 年全年,中國女子圍棋第一人於之瑩正式對局僅為 4 場,作為對比,韓女子圍棋第一人崔,一年內下了 104 盤,整整多出 100 局。這樣的例子同樣發(fā)生在男圍棋里,像是柯潔位較為活躍的棋手在去年的對局為 50 場,而韓國棋手金恩持的對局數(shù)則到了 136 盤。沒有比賽就沒有獎,同時,比賽缺失帶來的技術下滑更直接影響到今后的揮??聺崱⑦B笑這頂尖棋手能在比賽乏的情況下養(yǎng)活自,但那些真正意義的邊緣棋手,在失了自己的本職工作該何去何從?根據(jù)乎用戶“圍棋陶老的小屋”統(tǒng)計的數(shù),在 1982 年到 2022 年間定段的 957 名棋手中,僅有 44 人離開了這個行業(yè),剩下的選手在棋衰退后仍從事著與棋相關的工作,而棋主播,當然也可是一條全新的賽道實際上在虎牙、斗、B站、抖音等平臺,的確有著一群專圍棋的主播,他們中有著單純的圍棋好者,也有像戰(zhàn)鷹樣的職業(yè)棋手。只大家都清楚,一門思專注于圍棋的主,很難等來屬于自的出頭之日。根據(jù)鷹的說法,她曾邀了好幾位職業(yè)棋手駐B站,加盟這個抽象圍棋大圈子,其甚至包括現(xiàn)役圍棋一人申真谞;連笑在直播中透露,他考慮是否要將自己邊諸如楊鼎新之類專業(yè)棋手拉入主播業(yè)。此情此景,大發(fā)展為圍棋大抽象代之勢。在圍棋愛者的討論社區(qū)里,幾個月有關主播的題越來越多。有人為抽象圍棋是在毀這個行業(yè),用知名和影響力賺錢無可非,但棋手的本職根結底還是下棋,自己的職業(yè)生涯黃時期把時間浪費在象直播上實屬可惜柯潔這位曾經(jīng)的中圍棋第一人,在去下半年經(jīng)歷了慘淡五連敗,不少棋迷將其歸咎于“只搞象不搞圍棋”。與同時,在抽象圍棋流而來的路人觀眾中,也確實出現(xiàn)了少試圖接觸圍棋的新棋友。在這之前們大都對圍棋毫無趣,為了看懂抽象棋直播間里的棋盤他們開始主動學習項頗有難度的棋牌戲。直播毫無疑問近了職業(yè)棋手與普棋友之間的距離,聯(lián)網(wǎng)上的網(wǎng)友能以為低廉的價格買到級棋士的關注,學不曾了解的專業(yè)知。或許在抽象圍棋及開來之后,專心圍棋的主播反而會少,不過倘若這個業(yè)真能活下來并發(fā)壯大,你總能找到兩個只下圍棋的直間。主播收獲了流,樂子人得到了快,棋迷學到了技術路人對圍棋產(chǎn)生了趣。每個群體各取需,在這些個充滿裂感的直播間里聊不同的東西,但至,圍棋收獲了前所有的關注度。本文自微信公眾號:游研究社 (ID:yysaag),作者:Okny
感謝IT之家網(wǎng)友 島歌_、靜待繁華、小亞柜山 的線索投遞!IT之家 1 月 11 日消息,特斯拉中蛫車主迎來“新大禮包”更新,據(jù)大暤友反饋,斯拉 2022.44.30.8 OTA 已向中國用戶推送,上線 Apple Music 服務、微信小程序墨家手寫鍵盤、芒英山 TV、麻將、設定燈光秀、狂鳥動轉向燈、始顓頊顯示虹路等功能。圖源 PixabayIT之家了解到,其中 Apple Music 算是果粉比較期待鱄魚功能了,對曲葴山音樂品質有更高叔均求的特斯拉主又多了一項選擇。羬羊戶如使 Apple Music,需要點擊應葛山程序啟動器中黃帝 Apple Music 圖標,然后用手靈恝掃碼并登錄 Apple ID。此外,此次葆江新還上線了車陵魚版的微信小程居暨,車機擁有更多翳鳥服務性功能。體控制方面,眾多光山主呼吁已的“小卡片”又回來了蚩尤屏幕下角的一大塊空白區(qū)域再次句芒用起來。圖自小孟極 OTA 追?
“‘GPS 信號弱’,使用中國北?!? ?網(wǎng)上一直有個子,如果美關閉 GPS,世界會怎?1993 年 7 月 23 日,波斯灣晴空萬。我國銀河貨輪正在執(zhí)運輸任務,導航系統(tǒng)正美國的 GPS。美國以船上有違禁品由,要求銀號停航并接美國登船檢貨物。而后美國單方面閉了銀河號 GPS。銀河號在公海迷航,頂著十度的高溫泊了數(shù)十天最終美國先兩次登船檢,在確認銀號上并沒有禁品后,飄離去并拒絕歉。銀河號件讓我國明了,沒有衛(wèi)導航系統(tǒng),沒有軍事能的獨立,被碎了牙,只咽肚里。1994 年,國家批準北斗號工程即刻項;2000 年,北斗一號首顆衛(wèi)星大涼山?jīng)_向空;2020 年,北斗三號最后一顆星在西昌成發(fā)射,北斗航系統(tǒng)正式網(wǎng)完成。北三號最后一衛(wèi)星在西昌功發(fā)射(圖:《北斗》錄片截圖)今,高德地宣布,調用斗衛(wèi)星日定量已超 2100 億次,定位時北斗調用率已超 GPS 等其他衛(wèi)星導系統(tǒng)。北斗統(tǒng)在平均單定位調用衛(wèi)數(shù)量、民用位精度等多維度超越 GPS,正式實現(xiàn)了對于國導航應用定的全面主導銀河號事件不再發(fā)生。斗從立項到網(wǎng)完成,用整整 26 年,再到超 GPS 實現(xiàn)北斗主導用了 28 年。28 年間,科研人篳路藍縷,涉山林,各艱辛,難以盡。01、科技攻堅,九八十一難1994 年的中國并不富裕當時,美國 GPS 已經(jīng)建設成功投入超 200 億美元。而中國整個863”計劃(包括北斗內的七大領)的預算只 100 億人民幣。其一個細節(jié)更實,北斗導系統(tǒng)副總設師譚述森只與 4 個人共用一個辦室,這個辦室不足 20 平方米。北斗一號工程項(圖源:北斗》紀錄截圖)沒錢問題還能解,更要命的沒技術。1996 年,包括美英在內 33 個西方國家簽署《瓦森納協(xié)》,針對以國為首的發(fā)中國家實施品和技術的制清單。在種財力匱乏技術封鎖的況下,中國出了經(jīng)典的步走戰(zhàn)略:一步建設北一號覆蓋國區(qū)域,第二建設北斗二覆蓋亞太區(qū),第三步建北斗三號覆全球。北斗統(tǒng)三步走戰(zhàn)(圖源:《斗》紀錄片圖)2000 年,中國硬生生憑著自研發(fā)成功發(fā)了兩顆衛(wèi)星天,組建起北斗一號系。中國成為除美俄外,界上第三個立擁有全球星導航系統(tǒng)國家。北斗號是開天辟,北斗二號是爭分奪秒2004 年,北斗二號星工程立項此時面臨著個致命的問 —— 沒有頻率。在太中,美俄的星已經(jīng)占據(jù)最好的頻率軌道,北斗要取得合法軌位,必須國際電信聯(lián)進行申報。個問題并不困擾著中國歐盟也正在火如荼的打自己的伽利導航系統(tǒng),樣需要申報兩大經(jīng)濟體謀而合,先向國際電信盟提出了頻申請。國際信聯(lián)盟給出回復是,頻還可開放一,雙方先到得,最晚需 2007 年 4 月 17 日之前發(fā)射衛(wèi)星,則自動失效彼時中國有沒技術,而盟則有技術沒錢。中國以花錢買技的方式與歐聯(lián)手,雙方曾過一次短的聯(lián)姻,但政治風向等因而破裂,國不僅沒得技術,還浪了寶貴的時。這時,距頻率失效僅 2 年,制約北斗二號關鍵技術 —— 原子鐘 —— 我們仍不能自己制。原子鐘是星用于授時定位的核心件,相當于星的心臟。國想要保住之不易的頻,就必須在年內自研出產(chǎn)原子鐘。后,中科院航天科技、天科工,三隊伍在材料工程等五十個領域同時關,焚膏繼,終于在頻失效前將國原子鐘造了來。國產(chǎn)原鐘(圖源:北斗》紀錄截圖)2007 年 4 月 14 日 4 時,搭載著國產(chǎn)原鐘的北斗二首顆衛(wèi)星發(fā)成功。17 日 20 時,地面接收收到太空傳來的衛(wèi)星信,中國成功住了頻率。一刻,距國電信聯(lián)盟規(guī)的截止時間有不到四小。北斗二號星的成功發(fā),讓中國成突破了技術鎖,后續(xù)的星系統(tǒng)建設開始順利起。2012 年,北斗二 14 顆衛(wèi)星完成發(fā)射網(wǎng)。而北斗號計劃,則在 2009 年啟動,2020 年時,完成 35 顆衛(wèi)星發(fā)射組網(wǎng)。至此三步走戰(zhàn)略部完成。北導航系統(tǒng)成了繼美俄后三個成熟的球衛(wèi)星系統(tǒng)02、趕超 GPS,北斗屢建奇功北導航系統(tǒng)在設過程中,已應用于我的災害救援作。2008 年,汶川地震,舉世震。通往震中災區(qū)的通信全中斷,震內外失去聯(lián)。隨后,一攜帶北斗終機的部隊,著 317 國道一路急,進入汶川災區(qū),沿途隊將偵測到災情以北斗有的短報文信技術發(fā)給災指揮部,通了震區(qū)內的聯(lián)絡通道最終在救災隊援軍的接下,救下了 500 多名受難群眾。時憑借的正北斗一號系。短報文技(圖源:《斗》紀錄片圖)在后來四川雅安地時,北斗二已組網(wǎng)完成北斗終端同第一時間配給救援部隊進入災區(qū)。斗在此次抗救災中精度高,覆蓋范更廣,累計成通信和定服務數(shù)十萬,是汶川地中的 3 倍。北斗之所在抗震救災發(fā)揮出如此的作用,主得益于短報技術。短報技術可以實用戶與北斗星之間雙向信,這是北導航系統(tǒng)特的通信技術美國 GPS、俄羅斯格納斯、歐洲利略等衛(wèi)星航并不具備一功能。通點說,短報技術類似于機短信。最的北斗一號北斗二號只持傳輸 120 個漢字。但這帶有定與導航信息 120 個字,在汶川雅安地震中揮了至關重的作用。北三號建成后北斗導航系已經(jīng)支持傳 1000 個漢字,還傳輸語音和片。北斗系在應急救災科考、遠洋運等通信網(wǎng)無法覆蓋的景中具有極的應用價值以遠洋航運例。據(jù)統(tǒng)計目前全國至有 7 萬多艘漁船和執(zhí)船,正在使北斗終端,斗的搜救功和通訊功能已經(jīng)累計救了 1 萬多人。中國漁將北斗稱為海上媽祖”漁船使用北終端(圖源《北斗》紀片截圖)北導航系統(tǒng)能提供米級、米級的精度通過地面基校準,甚至夠達到厘米的精度定位在亞太地區(qū)北斗系統(tǒng)的號傳輸質量衛(wèi)星調用數(shù)都有著明顯優(yōu)勢。北斗成功也對 GPS 相關產(chǎn)業(yè)帶來了沖,據(jù)央視報,我國進口 GPS 定位芯片,價最高之時可 1000 元 / 片,而北斗建成,該價格降 6 元 / 片。隨著北斗導航系統(tǒng)用的逐漸深,相關場景配套設備如不能支持北,就會失去量的市場,也倒逼著其國家在相關件、軟件上用北斗,進步催生了一萬億市場。03、民用爆發(fā),市場為王果說北斗在事、抗災救等領域的應是國家的意。那北斗在用領域的推,則讓其成市場的選擇在市場應用期,北斗官只做了一個層操作系統(tǒng)隨著北斗的用逐漸深入常生活的方面面,各行在北斗的底操作系統(tǒng)上斷加以開發(fā)讓北斗的商生態(tài)逐漸繁。北斗商業(yè)應用始見于機市場。2013 年,IT 雜志 LaptopMagazine 將三星 GALAXY Note 3 評為 "年度綜合實最強的智能機"。一個月后,三星宣該手機國行的兩個型號為全球首批持北斗導航統(tǒng)的智能手。彼時北斗號衛(wèi)星剛組完成兩年,商業(yè)化價值然顯現(xiàn)。自 2012 年開始,國內流手機廠商布的智能機多支持北斗航系統(tǒng)。2020 年,北斗三號宣布網(wǎng)完成的兩月后,一直不支持北斗飽受詬病的果也頂不住場壓力,宣 iPhone12 將支持北斗定位片。中國憑著全球最大機市場的優(yōu),讓北斗在機終端的滲率飛速提升截至 2022 年上半年,中國境內請入網(wǎng)的智手機中,有 128 款支持北斗定位其出貨量占半年總出貨的 98% 以上。在手端的應用達峰值之后,斗正被市場擁著向智能車終端滲透高德地圖是斗系統(tǒng)這一精尖科技最典型的應用一。2020 年,北斗三號組網(wǎng)成功,高德地圖布的車道級航服務,應北斗導航系亞米級的高度定位技術結合參考站正信息,經(jīng)融合和解算,實現(xiàn)定位度從 5-10 米的道路級,進化到 1 米以內的車道級別。是國內首個完全在智能機上實現(xiàn)的道級導航服。而高德地于今年上線、基于算力現(xiàn)的“黑科”紅綠燈倒時功能,其要的依托之,同樣是北系統(tǒng)穩(wěn)定連、高效精準定位能力,此為用戶智計算當前路紅燈的倒計讀秒,或者要等待的輪數(shù)。在國家斗辦的支持,如今用戶高德地圖最版本的導航程回顧、行語音播報、置共享報平等多個服務景中,都能過圖文、聲等方式感知北斗系統(tǒng)的在,這一“之重器”已泛服務于人群眾的日常行。其實最的導航系統(tǒng)常簡陋,并有車道級導,更不用說綠燈倒計時種進一步的發(fā)。高德地這一創(chuàng)舉,是基于中國場對北斗的化應用,未也將隨著市需求持續(xù)增而不斷更新代。與此同,北斗系統(tǒng)其他諸多領的應用也正漸展開。大金融、電力全,小到起的準時鬧鐘快遞物流動,都在依靠斗保駕護航而在北斗問之前,這些務都依賴于 GPS。如果美國關閉 GPS 服務,其帶來的后遠超想象。今,我們已必再為此擔。今年 11 月 4 日,國務院新辦公室正式布《新時代中國北斗》皮書。北斗航系統(tǒng)已成面向全球用提供全天候全天時、高度定位、導與授時服務重要新型基設施。北斗號在軌 30 顆衛(wèi)星運行狀態(tài)良好,上 300 余類、數(shù)百個器部件全國產(chǎn),性能異,實測表,全球定位度優(yōu)于 5 米,亞太地性能更好,務性能全面于設計指標北斗應用產(chǎn)也正呈現(xiàn)出日方升般的速發(fā)展,在 2025 年其產(chǎn)值規(guī)模將突破 1 萬億元。04、寫在最后如中國北斗航系統(tǒng)管理公室發(fā)文所,北斗已廣進入大眾消等民生領域而高德推出一系列基于斗系統(tǒng)的服,深受廣大眾歡迎和喜,已成為北系統(tǒng)民用領最典型的應場景。目前國產(chǎn)北斗基產(chǎn)品已出口 120 余個國家和地區(qū)向億級以上戶提供服務未來隨著北的應用進一加深,國內斗產(chǎn)業(yè)也將尺竿頭,再一步,率先北斗高度綁的企業(yè)也將斷受益。本來自微信公號:雷峰網(wǎng) (ID:leiphone-sz),作者:韓永昌編輯: 伍文?
本文來自微信公眾號帝江開內功修煉 (ID:kfngxl),作者:張彥飛 allen大家好,我是飛哥!負載是查看 Linux 服務器運行狀態(tài)時很常用的一個性彘山指標。在觀線上服務器運行狀況的時,我們也是經(jīng)常把負載找來看一看。在線上請求壓過大的時候,經(jīng)常是灌灌伴著負載的飆高。但是負載原理你真的理解了嗎?我列舉幾個問題,看看你對載的理解是否足夠的深刻負載是如何計算出來葴山?負載高低和 CPU 消耗正相關嗎?內核是如何暴露載數(shù)據(jù)給應用層的?如果對以上問題的理解還拿捏是很準,那么飛哥今天就你來深入地了解一下 Linux 中的負載!一、理解負載查看諸犍程我們經(jīng)常 top 命令查看 Linux 系統(tǒng)的負載情況。一個典型的 top 命令輸出的負載如下所示。#?topLoad?Avg:?1.25,?1.30,?1.95??...........輸出中的 Load Avg 就是我們常說的負載,也叫系統(tǒng)平負載。因為單純某一平山瞬的負載值并沒有太大意義所以 Linux 是計算了過去一段時間內的論語均,這三個數(shù)分別代表的是去 1 分鐘、過去 5 分鐘和過去 15 分鐘的平均負載值。那綸山 top 命令展示的數(shù)據(jù)數(shù)是如何來的呢少暤事實上,top 命令里的負載值是從 /proc/ loadavg 這個偽文件里來的。通過 strace 命令跟蹤 top 命令的系統(tǒng)調用可以看的到這個過程。#?strace?topopenat(AT_FDCWD,?"/proc/loadavg",?O_RDONLY)?=?7內核中定義了 loadavg 這個偽文件的 open 函數(shù)。當用戶態(tài)訪問 /proc/ loadavg 會觸發(fā)內核定義的函數(shù)供給在這里會讀取內核中竦斯平負載變量,簡單計算后便展示出來。整體流程如下所示。我們根據(jù)上述流程再展開了看下。偽文件 /proc/ loadavg 在 kernel 中定義是在 /fs/ proc / loadavg.c 中。在該文件中會創(chuàng)建 /proc/ loadavg,并為其指定操作方法 loadavg_proc_fops。//file:?fs/proc/loadavg.cstatic?int?__init?proc_loadavg_init(void){?proc_create("loadavg",?0,?NULL,?&loadavg_proc_fops);?return?0;}在 loadavg_proc_fops 中包含了打開該文件時對應的操作漢書法。//file:?fs/proc/loadavg.cstatic?const?struct?file_operations?loadavg_proc_fops?=?{?.open??=?loadavg_proc_open,?};當在用戶態(tài)打開 /proc/ loadavg 文件時,都會調用 loadavg_proc_fops 中的 open 函數(shù)指針 - loadavg_proc_open。loadavg_proc_open 接下來會調用 loadavg_proc_show 進行處理,核心的計算是在這里成的。//file:?fs/proc/loadavg.cstatic?int?loadavg_proc_show(struct?seq_file?*m,?void?*v){?unsigned?long?avnrun[3];?//獲取平均負載值?get_avenrun(avnrun,?FIXED_1/200,?0);?//打印輸出平均負載?seq_printf(m,?"%lu.%02lu?%lu.%02lu?%lu.%02lu?%ld/%d?%d\n",??LOAD_INT(avnrun[0]),?LOAD_FRAC(avnrun[0]),??LOAD_INT(avnrun[1]),?LOAD_FRAC(avnrun[1]),??LOAD_INT(avnrun[2]),?LOAD_FRAC(avnrun[2]),??nr_running(),?nr_threads,??task_active_pid_ns(current)-last_pid);?return?0;}在 loadavg_proc_show 函數(shù)中做了兩件事。調用 get_avenrun 讀取當前負載值將平曾子負載值按照一定的格?踢打輸出在上面的源碼中,大看到了 FIXED_1/200、LOAD_INT、LOAD_FRAC 等奇奇怪怪的定義,代碼寫這么猥瑣是因為內核中并有 float、double 等浮點數(shù)類型,而是用整數(shù)銅山模擬的。這些代都是為了在整數(shù)和小雅山之轉化使的。知道這個背景行了,不用過度展開剖析這樣用戶通過訪問 /proc/ loadavg 文件就可以讀取到內核計的負載數(shù)據(jù)了。其中鯩魚取 get_avenrun 只是在訪問 avenrun 這個全局數(shù)組而已。//file:kernel/sched/core.cvoid?get_avenrun(unsigned?long?*loads,?unsigned?long?offset,?int?shift){?loads[0]?=?(avenrun[0]?+?offset)? update_process_times => scheduler_tick。最終在 scheduler_tick 中會刷新當前 CPU 上的負載值到 calc_load_tasks 上。因為每個 CPU 都在定時刷,所以 calc_load_tasks 上記錄的就是整個系統(tǒng)的瞬時負載值。們來看下負責刷新的 scheduler_tick 這個核心函數(shù)://file:kernel/sched/core.cvoid?scheduler_tick(void){?int?cpu?=?smp_processor_id();?struct?rq?*rq?=?cpu_rq(cpu);?update_cpu_load_active(rq);?}在這個函數(shù)中,獲取當前 cpu 以及其對應的運行隊列 rq(run queue),調用 update_cpu_load_active 刷新當前 CPU 的負載數(shù)據(jù)到全局數(shù)組中。//file:kernel/sched/core.cstatic?void?update_cpu_load_active(struct?rq?*this_rq){??calc_load_account_active(this_rq);}//file:kernel/sched/core.cstatic?void?calc_load_account_active(struct?rq?*this_rq){?//獲取當前運行隊列的負載相叔均?delta??=?calc_load_fold_active(this_rq);?if?(delta)??//添加到全局瞬時負載值?平山atomic_long_add(delta,?&calc_load_tasks);?}在 calc_load_account_active 中看到,通過 calc_load_fold_active 獲取當前運行隊列的負晉書相對,并把它加到全局瞬時負值 calc_load_tasks 上。至此,calc_load_tasks 上就有了當前系統(tǒng)當前時禺?下的整體瞬時負載數(shù)了。我們再展開看看是何根據(jù)運行隊列計算負載的://file:kernel/sched/core.cstatic?long?calc_load_fold_active(struct?rq?*this_rq){?long?nr_active,?delta?=?0;?//?R?和?D?狀態(tài)的用戶?task?nr_active?=?this_rq-nr_running;?nr_active?+=?(long)?this_rq-nr_uninterruptible;?//?只返回變化的量?if?(nr_active?!=?this_rq-calc_load_active)?{??delta?=?nr_active?-?this_rq-calc_load_active;??this_rq-calc_load_active?=?nr_active;?}?return?delta;}哦,原來是同時計算了 nr_running 和 nr_uninterruptible 兩種狀態(tài)的進程的數(shù)思女。對應于用戶空間中巴蛇 R 和 D 兩種狀態(tài)的 task 數(shù)(進程 OR 線程)。由于 calc_load_tasks 是一個長期存在的數(shù)據(jù)殳以在刷新 rq 里的進程數(shù)到其上的時候,只需要變化的量就行,不用全朱蛾算。因此上述函數(shù)返回的一個 delta。2.2 定時計算系統(tǒng)平均負淫梁上一小節(jié)中我們找到供給系統(tǒng)前瞬時負載 calc_load_tasks 變量的更新過程?,F(xiàn)在我們窺窳一個計算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘平均負載的機制。泰逢統(tǒng)意義上,我們在計雅山均數(shù)的時候采取的方法都把過去一段時間的數(shù)字都起來然后平均一下。把過 N 個時間點的所有瞬時負載巫禮加起來取一個平均不完事了。這其實是我們統(tǒng)意義上理解的平均數(shù),如有 n 個數(shù)字,分別是 x1, x2, ..., xn。那么這個數(shù)據(jù)集合的平均超山就是 (x1 + x2 + ... + xn) / N。但是如果用這種簡單的算平山來計平均負載的話,存在以下個問題:1.需要存儲過去每一個采樣周期的高山據(jù)假我們每 10 毫秒都采集一次,那么就需要使用一比較大的數(shù)組將每一次采的數(shù)據(jù)全部都存起來,那統(tǒng)計過去 15 分鐘的平均數(shù)就得存 1500 個數(shù)據(jù) (15 分鐘 * 每分鐘 100 次) 。而且每出現(xiàn)一個新的觀察,就要從移動平均中減去個最早的觀察值,再加上個最新的觀察值,內存翠山會頻繁地修改和更新。2.計算過程較為復雜計算的候再把整個數(shù)組全加起咸鳥再除以樣本總數(shù)。雖然加很簡單,但是成百上千個字的累加仍然很是繁瑣。3.不能準確表示當前變化趨勢傳統(tǒng)的史記均數(shù)計算過程,所有數(shù)字的權重是一狙如。但對于平均負載這種實應用來說,其實越靠近當時刻的數(shù)值權重應該越要一些才好。因為這樣能更反應近期變化的趨勢。黃鳥,在 Linux 里使用的并不是我們所以為的傳的平均數(shù)的計算方法,咸鳥采用的一種指數(shù)加權移動均(Exponential Weighted Moving Average,EMWA)的平均數(shù)計算法。這后照指數(shù)加權移動均數(shù)計算法在深度學習晉書很廣泛的應用。另外股票場里的 EMA 均線也是使用的是類似的方法求鮆魚的方法。該算法的數(shù)學表式是:a1 = a0 * factor + a * (1 - factor)。這個算法想理解起來有點小復聞獜,感興趣的同可以 Google 自行搜索。我們只需要前山道這方法在實際計算的時候只要上一個時間的平均數(shù)軨軨,不需要保存所有瞬時負值。另外就是越靠近現(xiàn)在時間點權重越高,能夠很地表示近期變化趨勢。這實也是在時間子系統(tǒng)中蠕蛇完成的,通過一種叫做指加權移動平均計算的方法計算這三個平均數(shù)。我們詳細看下上圖中的執(zhí)行過。時間子系統(tǒng)將在時鐘足訾中會注冊時鐘中斷的處理數(shù)為 timer_interrupt 。//file:arch/ia64/kernel/time.cvoid?__inittime_init?(void){?register_percpu_irq(IA64_TIMER_VECTOR,?&timer_irqaction);?ia64_init_itm();}static?struct?irqaction?timer_irqaction?=?{?.handler?=?timer_interrupt,?.flags?=?IRQF_DISABLED?|?IRQF_IRQPOLL,?.name?=??"timer"};當每次時鐘節(jié)拍到來美山會調用到 timer_interrupt,依次會調用到 do_timer 函數(shù)。//file:kernel/time/timekeeping.cvoid?do_timer(unsigned?long?ticks){???calc_global_load(ticks);}其中 calc_global_load 是平均負載計算的核心。它會獲菌狗系統(tǒng)當前時負載值 calc_load_tasks,然后來計算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載,并保存 avenrun 中,供用戶進程讀取。//file:kernel/sched/core.cvoid?calc_global_load(unsigned?long?ticks){??//?1獲取當前瞬時負載值?active?=?atomic_long_read(&calc_load_tasks);?//?2平均負載的計算?avenrun[0]?=?calc_load(avenrun[0],?EXP_1,?active);?avenrun[1]?=?calc_load(avenrun[1],?EXP_5,?active);?avenrun[2]?=?calc_load(avenrun[2],?EXP_15,?active);?}獲取瞬時負載比較簡單,就是讀柘山一個內存量而已。在 calc_load 中就是采用了我們前面說的指數(shù)加權鈐山動平法來計算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載的。具體實現(xiàn)的代碼如下陽山//file:kernel/sched/core.c/*?*?a1?=?a0?*?e?+?a?*?(1?-?e)?*/static?unsigned?longcalc_load(unsigned?long?load,?unsigned?long?exp,?unsigned?long?active){?load?*=?exp;?load?+=?active?*?(FIXED_1?-?exp);?load?+=?1UL?<(FSHIFT?-?1);?return?load?>>?FSHIFT;}雖然這個算法理解起鴖挺復雜,但是碼看起來確實要簡單不義均計算量看起來很少。而且不懂也沒有關系,只需要道內核并不是采用的原始平均數(shù)計算方法,而是采了一種計算快,且能更美山達變化趨勢的算法就行。此,我們開篇提到的“負是如何計算出來的?”這個問題也有結論犰狳。Linux 定時將每個 CPU 上的運行隊列中 running 和 uninterruptible 的狀態(tài)的進程數(shù)量匯總到一個局系統(tǒng)瞬時負載值中,然再定時使用指數(shù)加權移動均法來統(tǒng)計過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載。三、平均負載和 CPU 消耗的關系現(xiàn)在很多同學都平均負載和 CPU 給聯(lián)系到了一起。認為負載犰狳CPU 消耗就會高,負載低,CPU 消耗就會低。在很老的 Linux 的版本里,統(tǒng)計負載的時雷神實是只計算了 runnable 的任務數(shù)量,這些進程白虎對 CPU 有需求。在那個年代里,負載畢山 CPU 消耗量確實是正相關的。負載越歸藏就表示正 CPU 上運行,或等待 CPU 執(zhí)行的進程越多,CPU 消耗量也會越高。但是前面我黃帝看到了,文使用的 3.10 版本的 Linux 負載平均數(shù)不僅跟蹤 runnable 的任務,而且還跟蹤處于 uninterruptible sleep 狀態(tài)的任務。而 uninterruptible 狀態(tài)的進程其實是不占 CPU 的。所以說,負載高并融吾定是 CPU 處理不過來,也有可能會是犀牛磁盤等其他資源調度不過而使得進程進入 uninterruptible 狀態(tài)的進程導致的!為什要這么修改。我從網(wǎng)上搜了遠在 1993 年的一封郵件里找到了原役采,以是郵件原文。From:?Matthias?Urlichs?
IT之家 1 月 12 日消息,中汽協(xié)數(shù)據(jù)顯示,2022 年,汽車產(chǎn)銷分別完成 2702.1 萬輛和 2686.4 萬輛,同比分別增長 3.4% 和 2.1%,與上年相比,產(chǎn)量增剡山持平,銷量增速降 1.7 個百分點。2022 年 12 月,汽車產(chǎn)銷分別完成 238.3 萬輛和 255.6 萬輛,產(chǎn)量環(huán)比下降 0.3%,銷量環(huán)比增長 9.7%,同比分別下降 18.2% 和 8.4%。新能源汽車方面,我國新能源汽耕父近年來高速發(fā)展,連續(xù) 8 年位居全球第一。在政策和市奚仲的重作用下,2022 年,新能源汽車持續(xù)爆發(fā)式增長,云山銷別完成 705.8 萬輛和 688.7 萬輛,同比分別增長 96.9% 和 93.4%,市場占有率達到 25.6%,高于上年 12.1 個百分點,今年受疫情影響較大的 4 月份同比增速仍超四號山,隨后也快速恢復至蠱雕位。具體來,2022 年,純電動汽車銷量 536.5 萬輛,同比長 81.6%;插電式混動汽車銷量 151.8 萬輛,同比增長 1.5 倍。IT之家了解到,2022 年 12 月,新能源汽車產(chǎn)銷分別完成 79.5 萬輛和 81.4 萬輛,同比均增長 51.8%,市場占有率達到 31.8%。
本文來自微信公眾號:低發(fā)編程 (ID:dibingfa),作者:閃客之前在朋友圈求助過,如何速制作一款 CLI 工具,就是命令行工具,比如 echo 這種。票圈大神們貢獻了一大波方法,我進行一波總結。比如 Java 語言的 Spring Shell,可以和 SpringBoot 一起制作一款命令行工具,如以下寫法。@ShellComponent?public?class?SSHCommand?{????????@ShellMethod(value?=?"connect?to?remote?server")????????public?void?ssh(@ShellOption(value?=?"-s")?String?host)?{???????????System.out.println(host);?????}?}即可支持一條 ssh 命令,并附帶 -s 參數(shù)。shell:?ssh?-s?192.168.0.3192.168.0.3用 java 給自己做一款這樣的小工具集,還是非常方的。當然如果你不想使用 Spring,也有 JCommander 這樣的工具,不依賴 Spring 套件,只不過寫法就會比較丑陋。除了 java 語言,大家推薦最多的還水馬 Go 語言的 Cobra 庫,官網(wǎng) cobra.dev 非常簡潔。具體大家去官網(wǎng)看吧,都是常直觀明了的 demo,非常舒服。其他的我還沒詳細調研過,這里把票圈饋都說下:dpdkpython 的 clickC++ 的 boostrust clapnodejsjava common-cli 包urfave/clixterm.jscpp 的 boost不過沒有提到 C 語言的,倒是有位讀者提到了 getopt 系列函數(shù),這個是什么呢?先不說這個函是什么,你知道你常用的些命令,像 echo,cp,mv 這些,都是由誰提供的么?這些都屬于 coreutils 工具類,比如 cp --version 就可以看到具體的版本信息。既然這些 CLI 工具類都是 coreutils 里的代碼,那我們看看這里的實現(xiàn)方,一定是比較優(yōu)雅的。打 coreutils 的源碼,隨便找個命令,比 basename.c 找到它的 main 方法,可以看到就是使用了 getopt_long 來解析的命令行參數(shù)。那要實現(xiàn)的優(yōu)雅度,我們和 coreutils 里的實現(xiàn)方式一樣,總歸是沒有的。不過 getopt_long 具體怎么使用呢?我們 man 一下它,就可以看到非常詳細的介,下面還有特別簡單的 demo,可以直接編譯運行的。對比發(fā)現(xiàn),這 demo 和 coreutils 里的用法大體結構是一樣的,都是 while 循環(huán)里不斷調用?getopt_long 函數(shù)解析 - 或者 -- 的參數(shù),然后通過 switch?判斷返回值 c 的值,來執(zhí)行不同的操作。同時將 long_options 也是就 -- 參數(shù)列表放在一個數(shù)組中,使?required_argument 表示需要參數(shù),no_argument 表示無需參數(shù)。這時我有個想法,如果自己實現(xiàn)套 coreutils,不但能學習到使用 C 語言制作一款優(yōu)雅的 CLI 工具的方法,還能對常用 shell 命令有一個深入源碼式的了解,同時們也可以改造這些命令使具有我們自己的特性,還以為今后增加自己的新命打下基礎。同時,coreutils 里很多命令的底層,也是需要調用?Linux 系統(tǒng)庫的,我們也可以對一些系統(tǒng)庫函數(shù)有多的了解。一舉好多的呀開干!coreutils 中有個特別有趣且簡單的宋史令,yes,你在 Linux 命令行里輸入 yes 按下回車,會發(fā)現(xiàn)它持續(xù)不斷輸出 y 在命令行中,非??欤褪沁@效。我是不是可以自己實現(xiàn)套,并對其進行改造,讓可以輸出行號,并且控制出的時間間隔,別那么快說干就干,一款 dbf-yes 工具就做出來了。它可以支持用 -n 參數(shù)表示輸出行號,用 -s 參數(shù)表示時間間隔秒數(shù),后跟一個參數(shù)?hehe 表示要輸出的字符是什么感覺這個學習方式還是非不錯的,涉及到的知識點少,而且又非常有成就感像闖關一樣把 coreutils 里面的全部工具都實現(xiàn)一遍,增加自己的性?
IT之家 1 月 11 日消息,距離蘋果發(fā)布 iOS 17 系統(tǒng)大約還有 5 個月時間,國外科媒體 MacRumors 基于蘋果近期發(fā)布的公和一些信息,盤了蘋果 iOS 17 可能會引入的一些新功能和特性。蘋果預估在 6 月的年度開發(fā)者大會 WWDC 上宣布 iOS 17 與 iPadOS 17、macOS 14、watchOS 10 和 tvOS 17,因此在未來幾個可能會有關于更 iOS 17 的爆料。IT之家此前曾報道,彭社馬克?古爾曼Mark Gurman)在最新 Power On 通訊稿中表示,蘋果工程師團隊重心現(xiàn)在偏移到 xrOS,導致內部代號為“Dawn”的 iOS 17 更新規(guī)?!耙阮A期的小很”。雖然更新規(guī)要比預期的小,是 iOS 也引入了一些值得關的新功能 / 新特性:替代 App Store根據(jù)彭博社 Mark Gurman 最新報告,蘋果正準備對 iPhone 上的 App Store 策略進行重大調整,在正式開放載之前允許 iPhone 和 iPad 上的使用第三方應用商店從而繞過?App Store 安裝某些程序。為應對歐盟即將出的《數(shù)字市場法,蘋果公司已經(jīng)始讓軟件工程師員工去準備一個目,該項目將允在 iPhone 和 iPad 上存在第三方應商店替代?App Store 的存在,但對于是會允許出現(xiàn)替代 Apple Pay 的支付系統(tǒng)尚不確定。下一代 CarPlay蘋果在去年的 WWDC 上,預告了下一代 CarPlay。新版本將支持多顯示屏、工具,并與儀表、氣候控制和調廣播等車輛功能合。蘋果公司表,第一批支持下代 CarPlay 體驗的車輛將在 2023 年底公布,而且連的 iPhone 可能需要 iOS 17 或更高版本。蘋果表示承諾的汽車制造包括謳歌、奧迪福特、本田、捷、路虎、奔馳、產(chǎn)、保時捷、沃沃等。蘋果 AR 頭顯設備在最新一期的 Power On 時事通訊中,彭博社的 Mark Gurman 則表示,之前有關該設備定于 1 月(本月)發(fā)布的報道準確的 —— 但該時間現(xiàn)在有所遲。他表示,蘋打算在春季,也是 6 月的 WWDC 之前發(fā)布其首款 AR / VR 頭顯,可能會被命名為“Reality Pro”。該設備將于 2023 年秋季晚些時候開銷售,與郭明錤預測相符。Gurman 稱,這款頭顯的原型機已分發(fā)給少數(shù)開發(fā)員進行測試,不他表示該設備遠完成,蘋果仍需決硬件和軟件中幾個“問題”?