GitHub 上程序員最激動人心的 7 個 C 項目 [2022]
已發表: 2021-01-01有人說編程不是關於你知道什麼,而是關於你能弄清楚什麼。 程序員熱衷於探索編程世界並學習有關該藝術的所有知識,他們往往會忘記能夠可視化解決問題的方法是使您成為出色開發人員的原因。
隨著技術環境不斷發生變化,解決問題仍然是一項使您能夠駕馭進步並在此過程中不斷發展的技能。
加強你作為程序員的核心和培養解決問題能力的一種方法是從 C 開始,它通常被稱為所有編程語言之母。 即使在問世 50 年後,C 仍然在幾乎所有行業中得到廣泛應用,並被吹捧為最適合初學者的語言。 這確實引出了一個問題:什麼是 C,為什麼它仍然如此受歡迎?
目錄
為什麼 C 編程仍然如此占主導地位?
美國計算機科學家 Dennis Ritchie 於 1972 年將 C 作為一種通用的過程編程語言引入,旨在編寫操作系統。 它很快在軟件開發領域被公認為一種強大、健壯的語言,以至於今天一些最流行的名字都與 C 相關聯。
Microsoft 的 Windows、Apple 的 OS X 和 Symbian 都是使用 C 開發的。此外,Google 的 Chromium、MySQL、Oracle 和 Adobe 的大多數應用程序也使用 C 編程語言開發。 它還在我們的日常生活中扮演著不可或缺的角色,因為我們今天使用的大多數智能小工具都是由使用 C 編程的技術驅動的。
儘管 C 仍然是當今所有編程語言的支柱並具有包容性的實用程序有很多原因,但讓我們看一下前 3 個:

1. 靈活性
C 語言應用如此廣泛的主要原因之一是它在內存管理方面提供了無縫的靈活性。 程序員可以完全控制他們如何分配和取消分配內存,從而最大限度地提高效率並有助於更好地優化。
2. 便攜性
C 仍然是一種高度可移植的彙編語言。 它配備了廣泛的庫,可增強其功能並與幾乎所有現有處理器架構集成。 許多其他編程語言的編譯器、庫和解釋器主要用 C 編寫。這允許更快的計算和無縫的可訪問性。
3.簡單
C 是一種中級語言,這本質上意味著它具有高級語言和低級語言的特性。 這使它易於理解和易於使用。 此外,由於它是一種結構化的編程語言,它允許用戶將代碼分解成更小、更易讀的片段。
在本文中,我們將討論一些可以在 GitHub 上找到的有趣的 C 項目。 我們希望這些項目想法能幫助您提高解決問題的能力,增強您的知識基礎並增加您的學習體驗。
報名參加世界頂尖大學的軟件開發課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。
GitHub 中的熱門 C 項目
一、員工管理制度
從其標題可以看出,員工管理系統旨在記錄公司僱用的員工。 EMS 計劃的目標是通過提供一個全面的框架來簡化記錄保存過程,從而提高管理效率。
有關員工的所有個人或專業細節都保存在一個功能係統中,旨在克服手動記錄保存系統遇到的問題。 該程序精心設計的功能數據庫以易於訪問和修改數據的方式存儲信息。
員工管理系統安全可靠。 它具有不可見的密碼輸入和專用的登錄窗口。 它受密碼保護並加密為二進製文件。 此外,可以根據用戶的要求修改數據庫,即可以輕鬆地添加、刪除或替換記錄。
2.清除驅動器內容
目前僅與 Linux 兼容, Nuke是一個允許用戶清除任何給定驅動器的全部內容的程序。 清除內容後,它會寫入隨機字節以確保完全銷毀數據。
守則的運作:
用法:nuke <驅動器 1> [驅動器 2] ...
銷毀驅動器的內容。
選項:
-z,-0,-零
-n, –num-reps
-Y
-h,--幫助
-V,--版本
例子:
核子 /dev/sdb
核子 /dev/sdb /dev/sdc
核子 -z /dev/sdb
核子 -n 2 /dev/sdb
Nuke 要求系統具有 root 權限才能運行程序。 除此之外,還需要 GCC、GNU Make 和 PyQt5。
也可以試試: Java 項目的想法和主題
3. 迷你投票系統
使用迷你投票程序,您擁有一個系統,該系統允許一小群人或一大群人在程序跟踪計票時投票。 迷你投票系統相當靈活,它允許用戶在需要時執行非法刪除。 每個投票過程都被記錄下來,並據此宣布結果。

儘管它可以在任何 C 編譯器上運行,但還是推薦使用 Turbo C++。
代碼的工作:
名為 ELECTION.H 的頭文件
結構 CAND:用途:存儲名稱和投票數
職能:
candname:用途:在結構和文件中存儲候選人信息
flcreate:用途:創建“計數”編號。 的文件以“0”開頭
isSpecial:用途:檢查文件中的空白 PRN
(注意:PRN 是唯一的捲,不提供給課堂上的每個學生。)
isAuthentic:用途:PRN 身份驗證
delFromfile:用途:從給定文件中刪除 PRN 的投票
admin 用途: 1.選舉發起 2.選舉繼續 3.非法刪除選票 4.結果聲明
stu 用途:Voter 端的所有功能
管理面板
用戶名:“Admin” 密碼:“SR@3111”
4. 日曆應用
日曆應用程序是另一個可以使用 C 開發的簡單項目。它可以作為您的移動日曆來執行各種功能。
只需輸入當天的日期,您就可以找到任何一天。 例如,如果您想知道 2022 年 12 月 25 日是哪一天,您需要輸入日期 (25)、月份 (12 月) 和年份 (2022)。 該程序的輸出將是星期五。
用戶還可以添加特定日期的註釋以供以後查看。 此外,使用日曆應用程序,可以顯示他們希望訪問的任何月份的日曆。
閱讀: Python 項目理念和主題
5. 3D創作套件
Blender是一個免費的、跨平台的、開源的 3D 創作套件,與 Windows、Macintosh 和 Linux 兼容。 它為各種 3D 目的提供統一的管道,包括 VFX、雕刻、模擬、運動跟踪、視頻編輯和動畫等。 使用該程序也可以進行建模、渲染、裝配和遊戲創建。
它允許您根據您的要求編寫定制的專業化工具,旨在為開發人員、腳本編寫人員、設計人員和翻譯人員提供服務。
3D 創建套件主要使用 C 編寫,但也有 C++、Python 和其他一些語言的痕跡。
6. 識別惡意軟件
如果您是惡意軟件研究人員,或者您的工作圍繞識別惡意軟件展開, YARA可能會為您服務。 它是一個簡單的程序,能夠執行強大而復雜的任務。 使用 YARA,您可以識別惡意軟件,然後根據它們顯示的模式(文本或二進制)對它們進行分類。 惡意軟件研究人員可以使用字符串為他們識別的每個惡意軟件創建描述,然後使用布爾表達式來確定其邏輯。
例如,根據下面的代碼,只要程序遇到描述(即指定的三個字符串),它就會將它們報告為silent_banker。
規則silent_banker:銀行家
{
元:
description = “這只是一個例子”
威脅級別 = 3
in_the_wild = 真
字符串:
$a = {6A 40 68 00 30 00 00 6A 14 8D 91}
$b = {8D 4D B0 2B C1 83 C0 27 99 6A 4E 59 F7 F9}
$c = “UVODFRYSIHLNWPEJXQZAKCBGMT”
健康)狀況:
$a 或 $b 或 $c
}
通過這種方式,可以創建任意數量的規則,包括特殊運算符、不區分大小寫的字符串等。它還可以幫助您測試和識別誤報。
YARA 可以在 Windows、Linux 和 Mac OS X 上安裝和運行。
7.訪問數據結構
Redis通常被稱為數據結構服務器,是一個開源的內存數據庫,它允許您通過輸入一系列命令來訪問可變數據結構。 它允許多個進程共享現有的數據結構並對其進行修改。
Redis 快速且通用,因為它將數據結構存儲在磁盤上而不是服務器內存上。 此外,由於它們是數據結構,因此 Redis 內部的內存分配效率更高。 它還允許與數據庫相關的複制、集群和其他功能。
有問題的命令簡單易記。 例如,要編譯的命令是:
% 製作
可以使用以下命令運行 32 位 Redis 二進製文件:
% 製作 32 位
更新源代碼後,如果您希望刪除所有內容(jemalloc、lua、hiredis、linenoise)並從頭開始,請使用:
使 distclean

Redis 可以實現許多這樣的命令。
Redis 設計用於在 Linux、OSX 和 *BSD 上運行,但也可以與 Solaris 一起使用。
結論
作為世界上最大的軟件開發社區的東道主,GitHub 建立了一個廣泛的項目存儲庫,這些項目來自定期審查和評估彼此代碼的程序員。 而且,由於該平台支持所有編程語言,因此有大量的C GitHub 中的項目創意供任何人從中獲取靈感。
作為開發人員,您有責任跳出框框思考,利用現有資源提出巧妙的解決方案,並為軟件的未來做出貢獻。
如果您有興趣了解更多信息並需要行業專家的指導,請查看 upGrad & IIIT Banglore 的執行 PG 計劃全棧軟件開發。

