日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

写在2019年来临前的倒数0.5小时

發布時間:2023/12/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 写在2019年来临前的倒数0.5小时 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本來這篇文章是晚飯前要發表的,想完整的把system()函數和Linux系統上的信號梳理清晰,不料傍晚有點事情離開了一會兒,回來后又在樓下換了個新發型,耽誤了好多時間,回來時已經是11點了。迅速洗澡洗衣服,把中午寫到一段落的這篇文章發表出來:這是2018年最后1篇博文,先把system()基礎梳理清晰,然后2019的第1篇文章就繼續system()和信號的關系。

匆匆2018年就這樣要過去了,如果要為這消逝的365天加以概括,我覺得平平淡淡吧,無驚喜也無意外。工作上能夠做自己意向的Linux C/C++開發且技術上能循序漸進;生活中能分擔家里經濟負擔,供妹妹上大學后,自己衣食住行不愁。這也是親戚朋友眼中的我。

事實上可能隨著年紀的增長,有些憂慮憂患也應運而生。看著身邊的朋友生小孩的生小孩,結婚的結婚的,脫單的脫單,有時候自己也稍微也緊張了起來。這種感覺就像一群小學生的期末考,其它同學紛紛答卷完畢并遞交試卷了,而我還沒開始答題。也有這么一兩個好友他們答題完畢了還不急著起身走出教室,甚至好心偷偷丟紙條給我,那是試題答案,可我可能比較軸,我想自己答題所以謝絕了這樣的紙條。

2016年6月份畢業到現在不知不覺業已2年多了,一開始出來心無旁騖,一心只想扎進碼農的圈子,然后拿到能拿到一份豐碩的薪資,那時候每天都精力澎湃的學習,眨巴眨巴時間過去了,當初的目標漸漸靠近的同時也產生了新的目標,卻也發現很多目標即使達到了也不能讓自己快樂多少,比如你費盡心機攻破一個系統編程問題或者加班加點解決了客戶的現場問題,心里如釋重負的同時,退下來卻發現身邊沒有一個可以跟你分享喜悅的人;再者你拿到你規劃的薪資,發現這份薪資依舊是“剛剛可以過”,努力奮斗的回報無非使能過稍微正常點的生活

這幾天的深圳特別冷啊,最低都達到了9℃,聽北方的同事說他們家鄉都下雪了,對我這個從未走出廣東,甚至深圳隔壁的香港都沒涉足過的人來說,走進一場大雪是一種什么樣的奇妙經歷?想象不到。2019的愿望:希望能有那么一個人跟我涉足北方城市,一起經歷一場大雪

ok,接下來進入正題,來分析一下Linux系統上的system()函數。

程序設計中system()用于執行shell命令,如我們要時間和日期寫入某個文件:

system("sh data > file");

system()的函數原型如下:

#include <stdlib.h> int system(const char *command);

system()的實現:fork()創建一個子進程,并將傳入的參數調用execl()函數:

execl("/bin/sh", "sh", "-c", command, (char* )NULL);

為獲取system()所創建的子進程狀態,還需要調用waitpid(),所以system()的初步實現:

#include <unistd.h> #include <sys/wait.h> #include <sys/types.h> #include <stdlib.h> #include "system_test.h" #include <errno.h>int system_test(char* command) {pid_t cpid = -1;int status;switch (cpid = fork()) {case -1:perror("fork");return -1;case 0:execl("/bin/sh", "sh", "-c", command, (char* )NULL);_exit(127);default:while (waitpid(cpid, &status, 0) == -1) {if (errno == EINTR) { /* 被信號中斷時繼續回去等待,重要 */continue;}perror("waitpid");return -1;}return status;} }int main(void) {system_test("date");return 0; }

運行:

需要注意:
(1) -c選項的作用:告訴shell程序讀取下一個命令行參數作為命令輸入,而不是從標準輸入或者從一個給定的文件中讀取命令;
(2)代碼調用的是_exit()而非exit(),目的在于防止任一標準I/O緩沖在子進程中被沖洗。
上面代碼看似簡單,實際上system()的實現還需要考慮到信號。在APUE一書中說到:

POSIX.1要求system()忽略SIGINT和SIGQUIT,阻塞SIGCHLD信號。

這里說到“忽略”和“阻塞”,什么意思:
阻塞:內核會為每個進程維護一組信號,也稱之為掩碼。在該組的信號將阻塞對所在進程的傳遞。假設進程A將信號xx放到信號掩碼中,當外界(可能是內核,也可能是其他進程)向進程A發xx信號,那么該信號將被延后,直至從進程A的掩碼中移除xx信號。使用sigprocmask()系統調用可以顯式向信號掩碼中添加移除信號。
忽略:某進程忽略了某信號,若該信號專為該進程而生,那么內核會自行將其丟棄,內核甚至從未知道曾經產生了該信號。使用signal()或者sigaction()系統調用設置信號的對應操作為SIG_IGN忽略了該信號。

為什么要忽略SIGINT和SIGQUIT,阻塞SIGCHLD信號,且看下文…

最后讓我們靜待2019的來臨吧,希望2019年大家快樂:

system("echo 'Happy2019' >> 2019.year");

總結

以上是生活随笔為你收集整理的写在2019年来临前的倒数0.5小时的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: h狠狠躁死你h高h | 黄色精品视频 | 色哟哟视频网站 | 日韩精品人妻中文字幕有码 | 国产成人精品无码免费看81 | 99在线精品视频免费观看20 | 91精品国产91久久久久 | www.97超碰 | 操碰97| 荒岛淫众女h文小说 | 超碰极品 | 水蜜桃av在线 | 午夜羞羞影院 | 亚洲依依 | 欧洲美女与动交ccoo | 色成人亚洲 | 午夜在线一区二区三区 | 国产精品资源 | 中日韩黄色片 | 中文字幕日韩视频 | 91女人18毛片水多国产 | 黄色大片av | 日本特黄特色aaa大片免费 | 久久高清国产 | 99精品热| av资源库 | 亚洲一区国产精品 | 国产精品短视频 | 欧美777 | 九九视频免费 | 国产精品日本 | 国产精品一区二区毛片 | 国产又粗又猛又爽又黄的 | 中文字幕亚洲精品在线观看 | 在线观看免费高清 | 国产精品自拍偷拍视频 | 熟妇人妻无码xxx视频 | 你懂的av在线 | 91精品91久久久中77777 | 国产91啪| 亚洲理论视频 | 亚洲第一页av | 国产老头户外野战xxxxx | 在线免费黄色片 | 欧美天天射 | 美女黄色一级片 | 亚洲国产精品视频一区二区 | 精品成人一区二区三区久久精品 | 人人搞人人干 | 少妇三级 | 欧洲一区二区视频 | 日韩欧美成人一区 | 国产999精品视频 | 天天视频色 | 国产成人在线观看免费 | 欧美成人vr18sexvr | 天堂亚洲精品 | 2023天天操 | 激情五月在线观看 | 国产在线播放网站 | 芒果视频污污 | 色婷婷综合激情 | 性欧美69| 黄91在线观看 | 亚洲男人在线 | 久久99久久久久久 | 综合婷婷久久 | 亚洲免费精品视频 | v99av| 视频国产精品 | 亚洲制服丝袜在线播放 | 少妇高潮大叫好爽喷水 | 亚洲天堂视频在线 | 成人黄色在线看 | 韩国三级在线视频 | 九九色综合 | 伊人成年网| 麻豆射区| 亚洲淫片 | 久久tv| 狠狠人妻久久久久久 | 欧美日韩高清不卡 | 精品一区二区在线观看 | 日av一区 | 大地资源影视在线播放观看高清视频 | 久久精品黄色片 | 久久久久久久久久艹 | 欧美三级午夜理伦三级 | 青娱乐国产在线视频 | 黄色.com| 亚洲精品偷拍 | 五月综合激情网 | 欧美一区二区三区在线播放 | 亚洲丁香色 | 欧美精品免费在线观看 | 99热在线观看免费精品 | 国产精品一区网站 | 韩毛片| 免费看片网站91 |