Proje tasarımı
- C kursu
- İleri seviye
- Ders 79/83
- 6 dk
İleri seviye finali mini uygulamasının iskeletini tasarlarsın.
Proje: Mini sunucu
Bu beş derslik projede bir mini sunucu yapacaksın. Her ders bir katman ekler; son derste fork/pthread, soket ve IPC'i birleştiren çalışan bir program elde edersin.
Önceki gruplardaki fork, pthread, soket ve pipe bilgisini kullanacaksın. Proje boyunca dört işlev tanımlayacaksın: worker_init, server_setup, ipc_setup ve server_run. Bu ilk derste modülün iskeletini kuracaksın: prototipler ve main.
Modül iskeleti
C'de büyük projeler prototiplerle başlar. int worker_init(void); bir bildirimdir; tanım başka dosyada ya da aşağıda olabilir. Derleyici, bildirim sayesinde işlevin varlığını bilir.
Bu projede dört prototip tanımlayacaksın: worker_init (süreç/thread katmanı), server_setup (soket katmanı), ipc_setup (IPC katmanı) ve son derste server_run (birleştirme). İlk ders yalnızca ilk üç prototip ve main'le başlar; main printf("Proje hazır\n"); yazdırır.
Uygulama İskeleti yaz
Üç prototip ekle: int worker_init(void);, int server_setup(void);, int ipc_setup(void);. int main(void) yaz; içinde printf("Proje hazır\n"); yazdır.
Başlangıç kodu
#include <stdio.h>
// Proje: mini sunucu (fork/pthread + soket + IPC)
// worker_init, server_setup, ipc_setup prototiplerini ekle
// main: "Proje hazır" yazdırÖrnek çözüm
#include <stdio.h>
int worker_init(void);
int server_setup(void);
int ipc_setup(void);
int main(void) {
printf("Proje hazır\n");
return 0;
}Beklenen çıktı
Proje hazır
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Proje hangi katmanları içerir?
- Yalnızca printf
- Yalnızca dosya I/O
- Süreç + soket + IPC Doğru cevap
- Yalnızca döngü
Açıklama: Proje fork/pthread, soket ve IPC katmanlarını birleştirir.
2 worker_init prototipi
int worker_init(____);
int worker_init(void);
Açıklama: worker_init(void) parametresiz bir işlevdir.
3 Katmanları eşle
| Kavram | Anlamı |
|---|---|
worker_init |
Süreç/thread |
server_setup |
Soket |
ipc_setup |
Pipe IPC |
server_run |
Birleştirme |