C
Birleştirme
Tüm uzman konularını birleştirerek çalışan bir mini uygulama yazarsın.
Birleştirme
Son derste tüm parçaları birleştirirsin. main, sırayla kernel_init'i, parse_command'u ve security_check'i çağırır. Her çağrının sonucu yazdırılır; program "Bitti" mesajıyla sonlanır.
Bu, bir sistem uygulamasının akışını modeller: önce çekirdek hazırlanır, sonra komutlar çözümlenir, her giriş güvenlik denetiminden geçer. Üç modül — çekirdek, derleyici ve güvenlik — tek bir main içinde çalışır. Önceki dersin çözümü başlangıç koduna dahildir; sen yalnızca security_check çağrısını ve "Bitti" mesajını eklersin. Programın tam çıktısı deterministiktir.
Sistem akışı
Birleştirilmiş programın akışı: main önce "Proje başladı" yazdırır, sonra kernel_init() ile çekirdeği hazırlar. Ardından parse_command("help") ile komutu çözer ve sonucu yazdırır.
Sıradaki adım, security_check("test", 4) ile güvenlik denetimidir; sonuç yazdırılır. Son olarak "Bitti" mesajı ile program sonlanır. Bu akış, gerçek bir sistemin başlatma ve komut işleme adımlarını basitleştirilmiş olarak gösterir. Her modül bir kez çağrılır; çıktı deterministiktir ve her çalıştırmada aynıdır.
Uygulama Son birleştirmeyi yap
main içinde printf("Komut: %d\n", parse_command("help")) satırından sonra printf("Güvenlik: %d\n", security_check("test", 4)) ekle. En son printf("Bitti\n") ile programı bitir.
Örnek çözümü göster
#include <stdio.h>
#include <string.h>
void kernel_init(void);
int parse_command(const char *cmd);
int security_check(const char *buf, int len);
void kernel_init(void) {
printf("Çekirdek başladı\n");
}
int syscall(int num) {
return num * 2;
}
int parse_command(const char *cmd) {
if (strcmp(cmd, "help") == 0) return 1;
if (strcmp(cmd, "exit") == 0) return 2;
return 0;
}
int security_check(const char *buf, int len) {
if (len < 0 || len > 16) return 0;
if (buf == NULL) return 0;
return 1;
}
int main(void) {
printf("Proje başladı\n");
kernel_init();
printf("Komut: %d\n", parse_command("help"));
printf("Güvenlik: %d\n", security_check("test", 4));
printf("Bitti\n");
return 0;
}
Kendini test et
-
Modülü son görevine eşle
- Çekirdek
- kernel_init()
- Derleyici
- parse_command()
- Güvenlik
- security_check()
- Çıkış
- printf Bitti
-
Projenin son adımı nedir?
- Sadece güvenliği çağır
- Sadece çekirdeği çağır
- Tüm modülleri çağır ve 'Bitti' yazdır
- Hiçbir şey çağırma
Cevabı göster
Tüm modülleri çağır ve 'Bitti' yazdır — Son adımda tüm modüller çağrılır ve 'Bitti' yazdırılır.
-
Son printf'i tamamla
printf("____
");
Cevabı göster
printf("Bitti
");
Sıradaki ders: Uzman bölüm sınavı