Ukázalo sa, že téma je veľmi aktuálna. Zohľadnili sa niektoré chyby a otázky, v dôsledku čoho bolo prijaté rozhodnutie usporiadať druhú majstrovskú triedu. Doplnené a opravené!

Master class o programovaní v C pod Linuxom. Študujeme hlavné API.

Táto hlavná trieda je určená pre ľudí, ktorí sa chcú naučiť *nix API podobných operačných systémov, najmä pre Linux. Tu sa pozrieme na funkcie vývoja pre OS Linux, ktoré zahŕňajú:


  • Oboznámenie sa s procesom budovania softvéru a špecifikami C kompilátora od GCC

  • Vývoj a používanie zdieľaných knižníc

  • Ladiace programy

  • Skúmanie mechanizmov I/O súborov na nízkej úrovni

  • Štúdium mechanizmov pre multitasking a medziprocesovú komunikáciu

  • Používanie súborových a sieťových soketov

  • Štúdium a aplikácia signálneho mechanizmu

  • Štúdium procesov, vlákien, ich rozdielov, používanie multithreadingu, štúdium mechanizmov synchronizácie vlákien a ich problémov

  • Vytváranie démonov, učenie sa rozdielov medzi démonmi a aplikačným softvérom

  • Skúmanie funkcií I/O konzoly

  • Aplikácia a používanie súborov mapovaných v pamäti

Táto majstrovská trieda je určená predovšetkým pre vývojárov softvéru, inžinierov, programátorov a jednoducho amatérov, ktorí sa zaujímajú o zariadenie a špecifiká OS Linux.

Požiadavky na účastníkov master class: Znalosť jazyka C na úrovni knihy B.V. Kernighan, D.M. Richie "JAZYK C".

Náklady na túto majstrovskú triedu budú 6 000 rubľov.

Miestom konania je Moskva, v priestoroch Neuron Haxspace.
Termíny: Približne od 4. júla (pondelok), do 7. júla (štvrtok) od 10. do 17. hodiny s prestávkou na obed a čaj/kávu.

Online vysielanie sa nechystá.
Počet ľudí v skupine: 8-10.

Registráciu vykonáva e-mailom [chránený e-mailom] alebo v komentároch k tomuto príspevku. Na registráciu je potrebné vaše celé meno. (úplne) a kontaktné údaje (telefónne číslo a email). Odporúča sa opísať účel návštevy tejto majstrovskej triedy, úroveň odbornej prípravy a povolanie.

Podrobný program kurzu:

Modul 1. Úvod


  • Oboznámenie sa so špecifikami zostavovania softvéru v GNU/Linuxe

  • Úvod do textových editorov konzoly (vi, nano, mcedit)

  • Práca s debuggerom gdb

  • Manuálna a automatická montáž softvéru (Makefile)

  • Model klient-rozhranie-server (CIS).

  • Statické zostavovanie knižníc

  • Zdieľané knižnice

  • Práca s premennými prostredia

Modul 2: Nízkoúrovňové I/O a operácie so súbormi

  • Prehľad I/O mechanizmov v Linuxe (Ubuntu)

  • Deskriptory súborov

  • Systémové volania: otvorenie, zatvorenie, zápis, čítanie a vyhľadávanie

  • Typy súborov

  • Inody a pevné odkazy

  • Povolenia súboru

  • súborový systém proc

  • Dva spôsoby čítania obsahu adresára

  • Riedke súbory a špecifiká ich použitia

  • Uzamknutie oblastí súboru

Modul 3: Medziprocesová komunikácia

  • Mechanizmy medziprocesovej komunikácie Linuxu (Ubuntu)

  • Nepomenované fajky

  • Pomenované fajky

  • Front správ

  • Zdieľaná pamäť

  • Semafory

Modul 4: Zásuvky

  • Sokety v priestore názvov súborov (Sockety UNIX)

  • Spárujte zásuvky

  • Sieťové zásuvky

Modul 5. Signály

  • Úvod do signálov

  • Ako sa signály líšia od iných medziprocesových komunikačných mechanizmov

  • Špecifiká spracovania signálov

  • Modul 6. Procesy

  • Klonovacie procesy - fork()

  • Nahradenie vykonávaného procesu - exec()

  • Zombie - príčiny a spôsoby ich odstránenia

Modul 7: Prúdy

  • Vlákna a procesy

  • Špecifiká vytvárania viacvláknových aplikácií (viacvláknové spracovanie)

  • Predčasné ukončenie vlákna

Modul 8. Prúdy (pokračovanie)

  • Vytvorenie popisovača ukončenia závitu

  • Synchronizujte primitíva

  • Atribúty streamu

Modul 9. Démoni (služby)

  • Rozdiel medzi démonom a pomôckou konzoly

  • Špecifiká vývoja démonov

  • Vytvorenie démona, ktorý používa sieťové zásuvky

Modul 10. I/O konzoly

  • Špecifiká vývoja konzolových aplikácií

  • Zabránenie presmerovaniu výstupu

  • Správa terminálov

  • Skrytie hesla používateľa počas overovania

  • Ovládanie terminálu pomocou sekvencií ESC

Modul 11: Mapovaná pamäť

  • Zobrazenie bežného súboru

  • Zdieľajte súbor

  • Súkromné ​​mapovania

  • Iné použitia mmap

Modul 12. Domáca úloha

  • Špecifiká vývoja 64-bitových aplikácií

  • Použitie knižnice ncurses

Vedúci kurzu: Sergey Dolin. Elektronický inžinier, vývojár softvéru pre Linux (aplikačný softvér, testovací softvér pre hardvér, ovládače). Vývojár softvéru pre vstavané systémy. Linuxový programátor od roku 2011. Pracoval v NICEVT OJSC, Concern Systemprom JSC, PROSOFT LLC (v dcérskej spoločnosti Dolamant).

Veľa začínajúcich kóderov sa bojí
programovanie v Linuxe – žiadna jednoduchosť Windows
a viditeľnosť. Existuje však aj pre Linux
veľa vizuálnych pomôcok
programovanie a nie je to len klon Delphi.
Samozrejme, nemôžu sa stať úplnými
nahradenie toho istého Visual Studio, avšak celkom
pomôcť urýchliť proces vývoja
programy.

NetBeans

Jedno z najlepších IDE. Určené pre
prácu s Java, môžete ju použiť
rozvíjať nielen multiplatformové
Java programy, ale aj webové aplikácie, webové služby a
klientov pre nich, J2ME programy a pod. Možno
práca na Windows, Linux, MacOS. IDE je rozšíriteľné
rôzne pluginy a doplnky, ktoré môžu byť
nájsť na webovej stránke. Zároveň je všetko zadarmo
jesť pre hayalvu! Vo všeobecnosti - nespochybniteľné číslo
jeden.

QT/KDevelop Designer

Ďalšie výkonné vývojové prostredie zapnuté
platformy KDE a Gnome. Multiplatformový C++
aplikácie vychádzajú len na cesty. Pre
nekomerčné Qt programy môžu byť
voľne použiteľné, existuje
pre takmer všetky distribúcie.

Klon Visual Basic, a to nielen v dizajne,
ale aj v jazykových konštrukciách. Perfektné
nástroj pre VB programátorov, ktorí chcú
prejsť na Linux. Jednoduché a pohodlné rozhranie.
Prístup ku všetkým hlavným databázam - MySQL,
PostgreSQL atď. Funguje takmer na každého
distribúcie.

WYSIWYG editor na vytváranie webových stránok. In
Veľa mi to pripomína editor Macromedia alebo všetko
ten istý FrontPage. Podporuje automatické
pracovať so stránkou cez FTP.

Tvorba prostredia Python a Ruby IDE
programovanie v jazyku je celkom jednoduché
a vzrušujúce. V skutočnosti napísané
Python.

Eclipse vôbec nie je IDE, ale celá platforma
rôzne aplikácie. Na štandard
súčasťou dodávky sú ďalšie pluginy pre
Podpora a vývoj jazyka Java (JDT).
pluginy pre Eclipse (PDE - Plugin Development Environment). Pre
by mala byť práca s inými jazykmi
nainštalované špeciálne pluginy - v Eclipse
môže fungovať takmer na akomkoľvek
prístupný programovací jazyk. Ešte jedna vec
výhoda platí aj pre
rozšíriteľnosť: obrovské množstvo
nástroje (najmä pre Javu).
dostupné aj ako pluginy pre Eclipse,
napríklad Ant, JavaDoc, JUnit, JDepend, Check Style, Subversion.
Takže sa nemusíme vzdávať
váš systém správy verzií, z vášho
programy na kontrolu kvality kódu atď.
Treťou výhodou je, že Eclipse je
multiplatformové prostredie, tj
existujú verzie pre rôzne
operačné systémy (ktoré nemôžu
poskytnúť rovnaké Visual Studio).

JDeveloper

Platforma od Oracle – nie open source,
je však stále zadarmo. Ako je zrejmé z
názvy sa stále používajú naprieč platformami
Java. Používa Sun JDK na prácu, takže
Oracle nemá žiadne sťažnosti na to, čo sa vytvára
programy teoreticky nebudú mať.

A nakoniec prostredie vizuálnej kontroly
projekty pre Gnome Desktop. Nie menej užitočné
program pre programátorov ako IDE.

C je pomerne „starobylý“ programovací jazyk, ktorý vznikol začiatkom 70. rokov. Napriek tomu je C živý jazyk v tom zmysle, že sa dnes aktívne používa. Bol vynájdený, používaný a používa sa na písanie významných častí programového kódu operačných systémov podobných Unixu. Používa sa tiež na písanie pomôcok, kompilátorov a menej často aplikačných programov. Preto sa C nazýva systémový programovací jazyk.

Jeho životnosť možno vysvetliť tým, že princípy fungovania operačných systémov sú relatívne univerzálne, nepodliehajú pokroku a rôznorodosti, ktorú možno pozorovať v prostredí desktopových a mobilných softvérov a webových aplikácií. C nie je jazyk na vysokej úrovni, má bližšie k počítačovej architektúre. Vďaka tomu sú programy v jazyku C kompaktné a rýchle.

C nepodporuje objektovo orientované programovanie. Podpora OOP je implementovaná v C++. Hoci ten druhý vzišiel z jazyka C, nie je jeho „pokračovaním“, ale je samostatným jazykom, ktorý sa dá naučiť bez znalosti jazyka C. Naučiť sa však C je užitočné skôr, ako spoznáte jeho „pokročilého brata“, pretože Syntax jazykov je podobná, C nepreťažuje mozog začínajúceho programátora superschopnosťami a učí ho pochopiť podstatu toho, čo sa deje.

Je C dobré na to, aby ste sa prvýkrát dostali do programovania? Ak neštuduješ na vysokej škole v odbore súvisiacom s IT, tak nie. C vyžaduje pochopenie organizácie a fungovania hardvéru, najmä pamäte. Veľa z toho sa robí pomocou ukazovateľov, ktoré zohrávajú kľúčovú úlohu; táto téma je dosť náročná na pochopenie a v škole sa väčšinou neštuduje.

Samozrejme, môžete sa naučiť základy programovania v C bez toho, aby ste sa museli učiť ukazovatele. Avšak človek si bude myslieť, že pozná C bez toho, aby o ňom vedel veľa v podstate. Jazyk C bol vytvorený hardvérovo zdatnými profesionálnymi programátormi na písanie operačný systém UNIX. Nebol určený ako jazyk na výučbu začiatočníkov.

Prostredia a kompilátory pre programovanie v C

Ak používate niektorú z distribúcií GNU/Linux, postačí akýkoľvek textový editor so zvýraznením syntaxe, budete potrebovať aj GCC a terminál.

Existujú editory pre programátorov, ktoré obsahujú rôzne doplnky, vrátane terminálu, prehliadania adresárov atď. Napríklad Geany alebo Atom.

C je kompilovaný programovací jazyk. V GNU/Linux sa na získanie spustiteľných súborov používa GCC - sada kompilátorov vrátane kompilátora pre C. Na získanie spustiteľného súboru zo zdrojového súboru (zvyčajne takéto súbory majú príponu *.c) je potrebné spustiť príkaz v termináli, ktorý vyzerá asi takto:

gcc -o ahoj ahoj.c

Kde gcc je príkaz, ktorý spúšťa program, ktorý vykonáva kompiláciu a iné akcie; -o – prepínač označujúci, že manuálne zadávame názov spustiteľného súboru; ahoj – názov výsledného spustiteľného súboru; hello.c – názov súboru s zdrojový kód. Názov spustiteľného súboru možno vynechať:

gcc ahoj.c

V tomto prípade spustiteľný súbor bude mať predvolený názov a.out.

Windows má vlastnú sadu kompilátorov - MinGW. Dá sa použiť samostatne, ale je súčasťou jednoduchého vývojového prostredia Dev-C++, ktoré môže byť dobrá voľba na učenie sa programovania v jazykoch C a C++.

Pri ukladaní zvoľte typ súboru „C source files (*.c)“. Program sa skompiluje a spustí stlačením klávesu F9. Po vykonaní sa program okamžite zatvorí a výsledok nie je viditeľný. Aby ste tomu zabránili, napíšte dva ďalšie riadky: #include a getch(). (Toto nemusí byť pre viac relevantné nová verzia Dev-C++.)

"Hello World" v GNU/Linux:

#include \n") ; }

„Ahoj svet“ v systéme Windows:

#include #include int main() (printf("Ahoj svet \n");

getch(); ) Na druhej strane existuje

veľké množstvo

multiplatformové vývojové prostredia. Napríklad modul Eclipse + CDT, KDevelop, CLion. Ten je platený, vyrába ho JetBrains, líder vo vývoji IDE, ale má 30-dňovú skúšobnú dobu, čo môže stačiť na školenie. CLion je pohodlnejší ako iné IDE. "Ahoj svet" v C Pomocou príkladu

najjednoduchší program

Funkcia main() štandardne vracia dátový typ int, takže návratový typ nemusíte zadávať. Kompilátor však v tomto prípade vydá varovanie.

Funkcia printf() je určená na tlač údajov. Jeho účel je podobný procedúre write(). jazyk Pascal a funkcie print() v Pythone. Funkcia printf() po výstupe nepreskočí. nový riadok. Preto na prechod používame zvláštny charakter, ktorý je označený kombináciou \n. Úplné výrazy C sú oddelené bodkočiarkami.

V C nie sú I/O funkcie súčasťou jazyka. Napríklad v Pythone nepotrebujeme importovať žiadny modul, aby sme mohli používať funkcie print() a input(). V C nemôžeme jednoducho zavolať funkciu printf(), pretože Samotný C ho jednoducho nemá. Túto funkciu, ako aj množstvo ďalších, je možné aktivovať pomocou hlavičkového súboru stdio.h. To je presne dôvod, prečo je riadok napísaný na začiatku programu #include . Include je preložené z angličtiny ako „zapnúť“ a stdio je skratka pre „štandardný vstup-výstup“.

Hlavičkové súbory (končia *.h) zvyčajne obsahujú deklarácie určitých funkcií. Deklarácia je jednoducho popis funkcie: aké parametre berie a čo vracia. Samotný kód funkcie (definícia) sa nenachádza v hlavičkovom súbore, ale v knižniciach (iných súboroch), ktoré už môžu byť skompilované a umiestnené v systémových adresároch. Pred kompiláciou programu sa spustí preprocesor jazyka C Okrem iného obsahuje obsah hlavičkových súborov špecifikovaných v súbore programu na začiatku súboru programu.

Praktická práca

Zakomentujte prvý riadok kódu HelloWorld. Skúste skompilovať program. Podarilo sa vám získať spustiteľný súbor? Aké varovanie dal kompilátor?

1 // - jednoriadkový komentár v jazyku C; /* … */ - viacriadkový komentár v jazyku C.

Meno: Programovanie v C++ na Linuxe.

Kniha "Programovanie v C++ na Linuxe" je venovaná vývoju aplikácií v C++ vo vývojovom prostredí KDEvelop. Autor knihy dáva podrobný popis interakcie medzi komponentmi aplikácie, pokrýva základy práce s Qt Designerom a rozoberá ovládacie prvky dialógového okna a triedy, pre ktoré sú určené. Kniha učí koncept dokumentu/zobrazenia, vytváranie prvkov aplikačného rozhrania. Témy, ako je ukladanie a obnovovanie rôznych informácií zobrazených na obrazovke, vývoj textových editorov, organizovanie multitaskingu v aplikáciách na základe interakčných procesov a práca so šablónami tried a funkcií. Na záver autor uvádza užitočné odporúčania na vytvorenie systému pomoci pre vyvíjanú aplikáciu. Kniha je určená profesionálnym programátorom.


Kniha je venovaná tvorbe aplikácií napísaných v C++ vo vývojovom prostredí KDevelop. Je uvedený popis interakcie komponentov aplikácie. Zvažujeme prácu s nástrojom Qt Designer a popisujeme hlavné ovládacie prvky používané v dialógových oknách, ako aj triedy vytvorené na prácu s nimi. Čitateľ sa zoznámi s konceptom Document/View a naučí sa vytvárať prvky používateľského rozhrania aplikácie. Jednotlivé kapitoly navyše pokrývajú problematiku zobrazovania rôznych informácií na obrazovke, ich ukladanie a obnovovanie zo súboru, vytváranie textových editorov, prácu so šablónami tried a funkcií a organizáciu multitaskingu v aplikácii na základe vzájomne sa ovplyvňujúcich procesov. Nakoniec sú uvedené odporúčania na vytvorenie systému pomoci aplikácie.

Obsah:
Úvod
Pre koho je táto kniha určená?
Štruktúra knihy
Konvencie prijaté v tejto knihe
Hardvérové ​​a softvérové ​​požiadavky
Kapitola 1 Interakcia komponentov aplikácie
Signály a prijímače
Vysielanie signálov
Implementácia prijímačov
Realizácia spojenia
Spracovanie udalostí
Práca s oknom
Práca so vstupným zameraním
Pomocou myši
Používanie klávesnice
Implementácia drag and drop
Filtre udalostí
Syntetické udalosti
Sekvencia spracovania udalostí
Záver
Kapitola 2 Dialógové okná a základné ovládacie prvky
Vytvorenie konverzačnej aplikácie
Vytvorenie aplikácie šablóny
Vytvorenie prednastaveného dialógového okna
Dokončenie vytvárania konverzačnej aplikácie
Tvorba špecializovaných dialógové okná
Vytvorenie dialógového okna s kartami
Vytvorenie sprievodcu
Kapitola 3 Kontrolné triedy
Vypísať triedu
Triedy lineárneho regulátora a lineárneho indikátora
Práca s dátumom a časom
Kapitola 4 Triedy aplikácií, dokumentov a zobrazení
Aplikácia Qt s viacerými oknami
Trieda dokumentov
Prezentačná trieda
Aplikačná trieda
KDE aplikácia pre viacero okien
Trieda dokumentov
Prezentačná trieda
Aplikačná trieda
Kapitola 5 Vytváranie prvkov používateľského rozhrania
Používateľské rozhranie knižnice Qt
Vykonávanie zmien v ponuke
Práca so stavovým riadkom
Používateľské rozhranie aplikácií KDE
Vykonávanie zmien v ponuke
Prispôsobenie Panela s nástrojmi
Práca so stavovým riadkom
Kapitola 6 Zobrazenie informácií na obrazovke
Kreslenie figúr
Práca so štetcom
Prekreslenie okna
Synchronizácia objektov zobrazenia
Textový výstup
Práca s bitmapami
Bitmapy závislé od zariadenia
Hardvérovo nezávislé bitové obrazy
Kapitola 1 Práca so súbormi dokumentov
Ukladanie a obnova informácií v aplikácii
Prispôsobenie dialógových okien
Vykonávanie zmien v ponuke
Nastavenie pracovného adresára
Kapitola 8 Práca s textové dokumenty
Vytvorenie jednoduchého textového editora
Vytvorenie zložitejšieho editora
Vytvorenie editora KDE
Kapitola 9 Šablóny kolekcií a tried
Šablóny
Koncept šablóny
Šablóny funkcií
Šablóny tried
Kolekčné triedy
Typy zbierkových tried
Polia
Prepojené zoznamy
Mapy
Ostatné triedy zberu
Kapitola 10 Implementácia multitaskingu v aplikácii
Interakcia procesov
Vytvorenie klienta pre jednoduchý server
Vytvorenie komplexnejšieho servera
Vytvorenie klienta
Niektoré poznámky
Kapitola 11 Pomocník v aplikácii
Formuláre na zaslanie referenčných informácií
Spôsoby prístupu systém pomoci
Spôsoby prezentácie referenčných informácií
Formy podávania informácií
Kontextová pomoc pri programovaní
Zobrazovanie tipov
Zobrazenie informácií pomocníka v stavovom riadku
Získanie informácií o konkrétnom prvku
užívateľské rozhranie
Programovanie pomoci príkazov
Formát súboru pomocníka príkazu aplikácie Qt
Vytvorenie demo aplikácie Qt
Príloha 1 Čo je na CD
Príloha 2 Internetové zdroje
Predmetový index


Bezplatné stiahnutie elektronická kniha v pohodlnom formáte, sledujte a čítajte:
Stiahnite si knihu Programovanie v C++ na Linuxe - Nikolay Sekunov - fileskachat.com, rýchle a bezplatné stiahnutie.

Stiahnite si pdf
Túto knihu si môžete kúpiť nižšie najlepšia cena so zľavou s doručením po celom Rusku.

Ahojte všetci! Toto je prvý článok o programovaní v jazyku C, v ktorom si nastavíme testovací editor a dozvieme sa niečo o histórii jazyka C, možnostiach, výhodách a nevýhodách.

Jazyk C oslávil v roku 2012 40 rokov. C sa stal zakladateľom C++, Java, Perl, C#, JavaScript atď. Je to najpopulárnejší programovací jazyk na svete. C je procedurálny programovací jazyk. Súbory s kódom majú príponu .c a hlavičkové súbory .h. V C môžete programovať pre Linux, Windows, Windows Phone, Mac OS, iOS, Android atď. Každý programátor musí ovládať programovací jazyk C. Na to, aby ste sa stali programátorom, nestačí len čítanie kníh a článkov. Treba aj cvičiť. Preto si naše lekcie zopakujeme pomocou príkladov. Ak máte nejaké otázky, môžete sa opýtať v komentároch. Dá sa použiť aj tento návod Používatelia systému Windows a Mac OS. Používatelia iných operačných systémov môžu ako kompilátor použiť napríklad NetBeans (NetBeans podporuje nielen C, ale aj Java, PHP, C++, Python a Ruby)

Nastavenia

Na programovanie budete potrebovať textový editor (gedit) a kompilátor (gcc – súčasťou Ubuntu). Nie je potrebné konfigurovať kompilátor, ale teraz nakonfigurujeme textový editor.

OTVORENÉ Upraviť -> Nastavenia. Začiarknite nasledujúce políčka:

  • Zobraziť čísla riadkov;
  • Zvýraznite aktuálny riadok;
  • Zvýraznite párové zátvorky;
  • Motív môžete zmeniť aj na karte Písma a farby.

Pár „machinácií“ s geditom uľahčí prácu textový editor. A v budúcnosti sa pozrieme na nejaké IDE (integračné vývojové prostredie).