프로그래머를 위한 GitHub의 7가지 흥미로운 C 프로젝트 [2022]

게시 됨: 2021-01-01

프로그래밍은 아는 것이 아니라 알아낼 수 있는 것이라고 합니다. 프로그래밍의 세계를 탐험하고 기술에 대해 알아야 할 모든 것을 배우려는 열성 때문에 프로그래머는 종종 문제에 대한 솔루션을 시각화할 수 있는 것이 훌륭한 개발자가 되는 것임을 잊어버리는 경향이 있습니다.

기술 환경이 끊임없이 변화함에 따라 문제 해결은 발전을 탐색하고 그 과정에서 진화할 수 있는 유일한 기술로 남아 있습니다.

프로그래머로서 핵심을 강화하고 문제 해결 기술을 구축하는 한 가지 방법은 모든 프로그래밍 언어의 어머니로 알려진 C로 시작하는 것입니다. C는 도입된 지 50년이 지난 지금도 거의 모든 산업 분야에서 널리 사용되고 있으며 초보자에게 가장 적합한 언어로 선전되고 있습니다. 이것은 정말로 질문을 던집니다: 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가 널리 적용되는 주된 이유 중 하나는 메모리 관리와 관련하여 C가 제공하는 완벽한 유연성 때문입니다. 프로그래머는 메모리를 할당 및 할당 해제하는 방법을 완전히 제어하여 효율성을 극대화하고 더 나은 최적화에 기여합니다.

2. 휴대성

C는 이식성이 높은 어셈블리 언어로 남아 있습니다. 거의 모든 기존 프로세서 아키텍처와의 통합 및 기능을 향상시키는 광범위한 라이브러리가 장착되어 있습니다. 다른 많은 프로그래밍 언어에는 주로 C로 작성된 컴파일러, 라이브러리 및 인터프리터가 있습니다. 이를 통해 더 빠른 계산과 원활한 액세스가 가능합니다.

3. 단순성

C는 기본적으로 고급 및 저급 언어의 기능을 공유한다는 것을 의미하는 중간 수준 언어입니다. 이것은 이해하기 쉽고 사용하기 쉽습니다. 또한 구조화된 프로그래밍 언어이기 때문에 사용자가 코드를 더 작고 읽기 쉬운 조각으로 나눌 수 있습니다.

이 기사에서는 GitHub에서 찾을 수 있는 몇 가지 흥미로운 C 프로젝트에 대해 논의할 것입니다. 이러한 프로젝트 아이디어가 문제 해결 기술을 향상하고 지식 기반을 강화하며 학습 경험에 추가하는 데 도움이 되기를 바랍니다.

세계 최고의 대학 에서 소프트웨어 개발 과정 에 등록하십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

GitHub의 상위 C 프로젝트

1. 직원 관리 시스템

제목에서 알 수 있듯이 직원 관리 시스템 은 회사에 고용된 직원의 기록을 유지하도록 설계되었습니다. EMS 프로그램의 목적은 기록 보관 프로세스를 단순화하는 포괄적인 프레임워크를 제공하여 관리 효율성을 개선하는 것입니다.

직원에 관한 개인 또는 전문적인 모든 세부 사항은 수동 기록 보관 시스템이 직면하는 문제를 극복하는 것을 목표로 하는 기능적 시스템에서 유지 관리됩니다. 프로그램의 잘 설계된 기능 데이터베이스는 데이터에 쉽게 액세스하고 수정할 수 있는 방식으로 정보를 저장합니다.

직원 관리 시스템은 안전하고 신뢰할 수 있습니다. 그것은 보이지 않는 암호 입력과 전용 로그인 창이 있습니다. 암호로 보호되고 바이너리 파일로 암호화됩니다. 또한 데이터베이스는 사용자의 요구 사항에 따라 수정할 수 있습니다. 즉, 레코드를 쉽게 추가, 삭제 또는 교체할 수 있습니다.

2. 드라이브 내용 지우기

현재 Linux와만 호환되는 Nuke 는 사용자가 지정된 드라이브의 전체 내용을 지울 수 있는 프로그램입니다. 내용을 지우면 데이터가 완전히 파괴되도록 임의의 바이트를 씁니다.

행동 강령:

사용법: nuke <드라이브 1> [드라이브 2] …

드라이브의 내용을 삭제합니다.

옵션:

-z, -0, -0

-n, -num-rep

-와이

-h, -도움말

-V, -버전

예:

핵무기 /dev/sdb

핵무기 /dev/sdb /dev/sdc

핵무기 -z /dev/sdb

핵무기 -n 2 /dev/sdb

Nuke는 프로그램을 실행하기 위해 시스템에 루트 권한이 있어야 합니다. 그 외에도 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 사용: 유권자 측의 모든 기능

관리자 패널

사용자 이름: "관리자" 암호: "SR@3111"

4. 캘린더 앱

캘린더 앱 C를 사용하여 개발할 수 있는 또 다른 간단한 프로젝트입니다. 다양한 기능을 수행하기 위해 이동 중 캘린더 역할을 할 수 있습니다.

날짜만 입력하면 원하는 날짜를 알 수 있습니다. 예를 들어, 2022년 12월 25일이 무슨 날인지 알고 싶다면 일(25), 월(12월), 연도(2022)를 입력해야 합니다. 프로그램의 출력은 금요일입니다.

사용자는 나중에 볼 수 있도록 특정 날짜에 대한 메모를 추가할 수도 있습니다. 또한 캘린더 앱을 사용하여 액세스하려는 달의 캘린더를 표시할 수 있습니다.

읽기: Python 프로젝트 아이디어 및 주제

5. 3D 제작 제품군

Blender 는 Windows, Macintosh 및 Linux와 호환되는 무료 크로스 플랫폼 오픈 소스 3D 제작 제품군입니다. VFX, 조각, 시뮬레이션, 모션 추적, 비디오 편집 및 애니메이션을 비롯한 다양한 3D 목적을 위한 통합 파이프라인을 제공합니다. 이 프로그램을 사용하여 모델링, 렌더링, 리깅 및 게임 제작도 가능합니다.

요구 사항에 따라 맞춤형 전문화 도구를 작성할 수 있으며 개발자, 스크립터, 디자이너 및 번역가에게 서비스를 제공하도록 설계되었습니다.

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)을 지우고 처음부터 시작하려면 다음을 사용하세요.

더럽히다

Redis에서 구현할 수 있는 이러한 명령이 많이 있습니다.

Redis는 Linux, OSX 및 *BSD에서 실행되도록 설계되었지만 Solaris에서도 사용할 수 있습니다.

결론

세계에서 가장 큰 소프트웨어 개발 커뮤니티의 호스트인 GitHub는 정기적으로 서로의 코드를 검토하고 평가하는 프로그래머의 광범위한 프로젝트 저장소를 구축했습니다. 그리고 플랫폼이 모든 프로그래밍 언어를 지원하기 때문에 수많은 C 언어가 있습니다. 누구나 영감을 얻을 수 있는 GitHub의 프로젝트 아이디어 .

개발자는 즉시 생각하고 기존 리소스를 사용하여 독창적인 솔루션을 제시하고 소프트웨어의 미래에 기여할 책임이 있습니다.

더 자세히 알아보고 업계 전문가의 멘토링이 필요한 경우 upGrad & IIIT Banglore의 Executive PG Program Full-Stack Software Development 를 확인하십시오.

미래의 직업을 위한 준비

지금 소프트웨어 공학 석사 지원