# [2021q1](http://wiki.csie.ncku.edu.tw/linux/schedule) 第 8 週測驗題 ###### tags: `linux2022` :::info 目的: 檢驗學員對 ==[C 語言程式設計](https://hackmd.io/@sysprog/c-prog/%2F%40sysprog%2Fc-programming)== 及 ==[並行程式設計](https://hackmd.io/@sysprog/concurrency)== 的認知 ::: ==[作答表單](https://docs.google.com/forms/d/e/1FAIpQLScejdGf2QVaSxVc-pw0BpMztM0yYE-uSBSNiQXTA5WWSSr5DQ/viewform)== > [測驗題目總覽](https://hackmd.io/@sysprog/linux2022-quiz8) ## 說明 * 測驗時間為 4 月 4 日 ==17:00== 到 4 月 5 日 ==23:59==,可參閱線上教材和使用電腦進行程式試驗,期間禁止透過任何形式的討論 * 本測驗分為 3 個部分,每部分佔 50 分,請詳閱左側分頁或以下 * [測驗 `1`](https://hackmd.io/@sysprog/Hyg5nxO79): [memchr](https://man7.org/linux/man-pages/man3/memchr.3.html) 效能改進 * [測驗 `2`](https://hackmd.io/@sysprog/rkQMKQu7c): multiple-producer/multiple-consumer (MPMC) 的實作 * [測驗 `3`](https://hackmd.io/@sysprog/By5JAmOX9): 變更特定 Linux 行程的內部狀態 * 本測驗作答方式為遞交程式碼和簡答,請學員事先建立 HackMD 頁面 (存取權限應設定為所有人可閱讀以及==已登入者可編輯==),並在標題標註 `2022-04-04` 和學員的 **GitHub 帳號名稱**,內文是針對為各題目的程式碼 (依循 C99/C11 規格) 和討論答覆 (可用漢語或英語書寫),上方「作答表單」會引導學員填入 HackMD 頁面的超連結 * 每部分的程式碼列表中,都包含 `XXXXX` (5 個 `X` 字元),顯然這不是合法的 C 語言敘述,而是要求學員依據題意和原有的程式碼註解去補足缺失的程式碼 (可能一行或多行,請儘量書寫程式碼註解),請在上述建立的 HackMD 頁面中連同 `XXXXX` 所在的完整函式或巨集定義,列出你修改的程式碼,縮排應為 4 個半形空白字元