Úvod do programovacího jazyka C. Programování v C (C) na Ubuntu (Linux)

Všechny akce v operačním systému se provádějí pomocí programů, takže mnoho začátečníků se zajímá nejen o používání programů jiných lidí, ale také o psaní svých vlastních. Mnoho lidí chce přispívat do kódové základny OpenSource.

Toto je přehledný článek o programování pro Linux. Podíváme se na to, které jazyky se používají nejčastěji, podíváme se na základní pojmy i možnosti a zjistíme, jak psát nejjednodušší program v jednom z nejpopulárnějších programovacích jazyků, jak jej ručně sestavit a spustit.

Historicky bylo unixové jádro napsáno v C. Navíc byl tento jazyk vytvořen pro psaní unixového jádra. Protože linuxové jádro bylo založeno na jádru Minix ( Unixové verze), pak to bylo také napsáno v C. Proto můžeme říci, že hlavním programovacím jazykem pro Linux je C a C++. Tento trend pokračoval dlouhou dobu.

Obecně platí, že programy pro Linux můžete psát téměř v jakémkoli jazyce, od Javy a Pythonu po C# a dokonce i Pascal. Všechny jazyky mají kompilátory a interprety. Psaní programů v C++ je obtížné a C je mnohými považováno za zastaralé, takže mnoho programátorů používá k psaní programů jiné jazyky. Mnoho systémových nástrojů je například napsáno v Pythonu nebo Perlu. Většina programů od týmu Linux Mint, instalátor Ubuntu a některé apt skripty jsou napsány v Pythonu. Mnoho skriptů, včetně jednoduchých optimalizačních skriptů, je napsáno v Perlu. Ruby se někdy používá pro skriptování. Jde o skripty OpenShift nebo například framework Metasploit. Někteří vývojáři multiplatformních programů používají Javu. Ale hlavní součásti systému jsou stále napsány v C.

V tomto článku se nebudeme zabývat základy jazyka C. C je obtížný jazyk a budete si muset přečíst alespoň jednu knihu a hodně cvičit, abyste ho zvládli. Podíváme se na to, jak psát programy v C na Linuxu, jak je kompilovat a spouštět.

Proč se učit C:

2. Knihovny

Pokud potřebujete zobrazit řetězec nebo obrázek na obrazovce, přirozeně nebudete mít přímý přístup ke grafické kartě. Jednoduše zavoláte pár funkcí, které jsou již v systému implementovány a předáte jim data, která chcete zobrazit. Tyto funkce jsou umístěny v knihovnách. Ve skutečnosti jsou knihovny kolekce funkcí, které používají jiné programy. Obsahují stejný kód jako v jiných programech, jediný rozdíl je v tom, že zde nemusí být nutně přítomna inicializační funkce.

Knihovny se dělí na dva typy:

  • Statický- jsou spojeny s programem ve fázi kompilace, jsou spojeny a poté jsou všechny funkce knihovny dostupné v programu jako nativní. Takové knihovny mají příponu .a;
  • Dynamický- takové knihovny jsou mnohem běžnější, načítají se do RAM a dynamicky se propojují se softwarem. Když program potřebuje knihovnu, jednoduše ji zavolá na známou adresu paměť s náhodným přístupem. Tím se šetří paměť. Rozšíření těchto knihoven je .so, které pochází ze sdíleného objektu.

Pro jakýkoli program v jazyce C tedy musíte zahrnout knihovny a všechny programy nějaký druh knihovny používají. Je také důležité poznamenat, že bez ohledu na to, v jakém jazyce se rozhodnete psát, nakonec se vše zredukuje na knihovny systému C. Například napíšete program v Pythonu, použijete standardní funkce tohoto jazyka a samotný interpret je již program v C/C++, který pro přístup k hlavním funkcím používá systémové knihovny. Proto je důležité pochopit, jak programy C fungují. Samozřejmě existují jazyky, jako je Go, které jsou okamžitě přeloženy do montáže, ale používají se tam stejné principy jako zde. Kromě toho programování systému Linux je převážně C nebo C++.

3. Proces sestavení programu

Než přejdeme k procvičování a vytvoření našeho prvního programu, musíme pochopit, jak proces montáže probíhá a z jakých fází se skládá.

Každý seriózní program se skládá z mnoha souborů, jedná se o zdrojové soubory s příponou .c a hlavičkové soubory s příponou .h. Takové hlavičkové soubory obsahují funkce, které jsou do programu importovány z knihoven nebo jiných souborů.c. Před. Jak může překladač sestavit program a připravit ho k práci, potřebuje zkontrolovat, zda jsou skutečně implementovány všechny funkce, zda jsou dostupné všechny statické knihovny a sestavit jej do jednoho souboru. Prvním krokem je tedy spuštění preprocesoru, který sestaví zdrojový soubor a provede příkazy jako include, které zahrnou kód hlavičkových souborů.

V další fázi začne pracovat kompilátor, provede s kódem všechny potřebné akce, analyzuje syntaktické struktury jazyka, proměnné a to vše převede do mezikódu a následně do kódu strojových instrukcí, které pak můžeme podívejte se na v jazyce symbolických instrukcí. Program se v této fázi nazývá objektový modul a ještě není připraven ke spuštění.

Dále začne fungovat linker. Jeho úkolem je propojit objektový modul se statickými knihovnami a dalšími objektovými moduly. Pro každý zdrojový soubor je vytvořen samostatný objektový modul. Teprve nyní lze program spustit.

Nyní se podívejme na celý tento proces v praxi pomocí kompilátoru GCC.

4. Jak sestavit program

Ke kompilaci programů v Linuxu se používají dva typy kompilátorů: . Zatím je GCC běžnější, takže to zvážíme. Obvykle je program již nainstalován ve vašem systému, ale pokud ne, můžete jej nainstalovat na Ubuntu:

sudo apt install gcc

Než přejdeme k psaní a sestavování programu, podívejme se na možnosti syntaxe a kompilátoru:

$gcc možnosti zdrojový_soubor_1.c -o hotový_soubor

Pomocí voleb říkáme obslužnému programu, co má dělat, jaké knihovny má použít, pak jednoduše specifikujeme zdrojové soubory programu. Podívejme se na možnosti, které dnes použijeme:

  • - zapsat výsledek do souboru pro výstup;
  • -C- vytvořit soubor objektu;
  • -X- určit typ souboru;
  • -l- načíst statickou knihovnu.

Ve skutečnosti je to všechno to nejzákladnější, co potřebujeme. Nyní vytvoříme náš první program. Na obrazovce zobrazí řádek textu a pro zajímavost vypočítá druhou odmocninu z čísla 9. Zde je zdrojový kód:

zahrnout
#zahrnout

int main())(
printf("web\n");
printf("Kořen: %f\n", sqrt(9));
návrat 0;
}

gcc -c program.c -o program.o

Toto je fáze kompilace, pokud v programu nejsou žádné chyby, bude úspěšný. Pokud existuje několik zdrojových souborů, pak se tento příkaz provede pro každý z nich. Dále provedeme propojení:

gcc -lm program.o -o program

Věnujte pozornost volbě -l, s ní označujeme, které knihovny je třeba zahrnout, například zde zahrneme knihovnu matematické funkce, jinak linker jednoduše nenajde, kde ta či ona funkce existuje. Teprve poté můžete spustit program pro spuštění:

Všechny tyto akce lze samozřejmě provádět pomocí různých grafických prostředí, ale když vše uděláte ručně, můžete lépe pochopit, jak vše funguje. Pomocí příkazu ldd můžete vidět, které knihovny náš program používá:

Jedná se o dvě zaváděcí knihovny, standardní libc a libm, které jsme zahrnuli.

5. Automatizace montáže

Když uvažujeme o programování pod Linuxem, nelze si nevšimnout systému pro automatizaci sestavování programů. Jde o to, že když existuje mnoho zdrojových souborů pro program, nebudete ručně zadávat příkazy k jejich kompilaci. Můžete je nahrát jednou a pak je použít všude. K tomuto účelu existuje nástroj make a Makefiles. Tento soubor se skládá z cílů a má následující syntaxi:

cíl: závislosti
tým

Cílovou závislostí může být soubor nebo jiný cíl, hlavním cílem je vše a příkaz provádí nezbytné akce sestavení. Například pro náš program může Makefile vypadat takto:

program: program.o
gcc -lm program.o -o program

program.o: program.c
gcc -c program.c -o program.o

Pak stačí spustit příkaz make pro spuštění kompilace, jen nezapomeňte odstranit předchozí dočasné soubory a zkompilovaný program:

Program je opět připraven a můžete jej spustit.

závěry

Vytváření linuxových programů je velmi zajímavé a vzrušující. Sami uvidíte, až si na tuto záležitost trochu zvyknete. Je těžké pokrýt vše v tak krátkém článku, ale my jsme probrali úplné základy a oni by vám základy měli dát. V tomto článku jsme se podívali na základy programování v Linuxu, pokud máte nějaké dotazy, zeptejte se v komentářích!

Kurz programování v C pro Linux:

O tom, jak nainstalovat plnohodnotný kompilátor SI a C++ na Windows, jsem již psal v článku:.

Tyto jazyky jsou však multiplatformní a mnoho lidí používá Linux nejen jako domácí systém, ale také jako pracovní nástroj. Navíc se v poslední době zvýšilo procento uživatelů Linuxu. A mnoho z nich se chce naučit programovat. Proto vám dnes řeknu, jak nainstalovat kompilátor C a C++ na systém Linux.


Pokud používáte Windows, ale chcete vyzkoušet Linux, podívejte se na mé články o virtuálním pracovním stroji:.

Linux je tedy nainstalován, internet připojen. Otevřete konzolu a zadejte příkaz pro instalaci kompilátorů.
$sudo apt-get install gcc g++

To je vše, kompilátory jsou nainstalovány. Teď už zbývá jen zkontrolovat.
Přejdeme do domovské složky a vytvoříme soubor hello.c, otevřeme jej a napíšeme jednoduchý program:

#include main() ( printf("Dobrý den\n"); )

Poté otevřete konzolu a zkompilujte skript do programu:
$gcc ahoj.c -o ahoj

To je vše, ve složce by se měl objevit program hello. Teď to spustíme.
$./ahoj

Ale programování v jednoduchém poznámkovém bloku a kompilace v konzoli je zvláštní zvrácenost. Potřebujeme víceméně normální IDE pro programování v C a C++ s vestavěným kompilátorem.

Pokud si přečtete můj článek, pak pochopíte, o čem mluvím. Ano, nainstalujeme Geany. Je to vynikající vývojové prostředí pro mnoho jazyků. Psaní konzolových programů v něm je radost.
Otevřete konzoli a napište:
$sudo apt-get install geany

Souhlasíme s instalací a čekáme na její dokončení. Poté spustíme program.

Otevřeme v něm stejný soubor hello.c a trochu jej upravíme, poté klikneme na tlačítko, které vypadá jako cihla „Sbírat aktuální soubor“ a spusťte červené tlačítko „Zobrazit nebo spustit aktuální soubor“. A uvidíme konzolové okno s výsledkem.

Pískoviště

Barack Adama 15. března 2014 ve 13:20 hodin

C++ školení. Co když začnete na Linuxu?

Už to vře!

V současném školském vzdělávacím systému se zostřuje pod operační systém Microsoft je úžasný: až na velmi vzácné výjimky můžete někde vidět něco jako Edubuntu nebo ruský ALT Linux, ale jinak je to Windows. Podle mě je nejvyšší čas, aby školy seznámily děti s jiným pohledem na to, jaké by mělo být rozhraní mezi člověkem a hardwarem, a nehledaly společné cesty. Možná je to právě tento srovnávací analytický pohled na věc, který umožní zvýšit extrémně nízkou úroveň počítačová gramotnost od absolventů škol, kteří neumí ani formátovat text ve Wordu nebo vytvořit dobrou prezentaci v PowerPointu.

Je upřímně překvapivé, že ve školách je považováno za extrémně složité a dokonce mystické skládat dvourozměrná pole ve stejném Pascalu, který je mimochodem také nejvyšší čas nahradit ho flexibilnějším a pohodlnějším Pythonem nebo JavaScriptem. učitelé, jaká by měla být motivace studenta, když učí v mrtvém jazyce? Abychom posílili pravidla gramatiky, neučíme se nejdříve slovansky a pak ruštinu a další. Tak co sakra?!

S ohledem na módnost programátorské profese a jistou romantiku v myslích mladých lidí, inspirovaných hollywoodskými filmy, lidé vstupují na vysoké školy a potýkají se s řadou obtíží: jejich hlava se začíná prudce roztahovat, což nevyhnutelně vede nejprve k únavě a poté ke zklamání z jejich výběru. Faktem zůstává: pokud se spojujete s povoláním, které vyžaduje neustálé sebezdokonalování, začněte to dělat ještě před vstupem. Existuje mnoho materiálů, které vám pomohou být během studia lépe připraveni a umožní vám najít uplatnění ve vaší specializaci do 3.–4. roku studia. Hýbat se!

Na pozadí takové úvahy za mnou někdo přišel, abych udělal malý návod, jak napsat, zkompilovat a spustit program v C++ na Linuxu bez speciální prostředky(IDE). Tento přístup bude schopen zavést začínajícího programátora do procesu vývoje v té nejtriviálnější podobě a také do pro něj zásadně nového operačního systému. Linuxový systém. Na závěr svého habrapostu napíšu seznam referencí a užitečných odkazů.

Začněme tím, co potřebujeme:
-Linuxová distribuce (vezměme Ubuntu);
-Nainstalovaný kompilátor g++;
-Běžný textový editor (gedit);
-Terminál;

Jít!

1. Instalace Linuxu a potřebného softwaru.
Stáhněte si obraz distribuce Linuxu Ubuntu z oficiálního webu ubuntu.ru. Ještě bych chtěl dodat, že nedoporučuji používat Wubi. Provádíme běžnou instalaci nebo na našem HDD, buď v virtuální stroj. Nahráváme z pomocí Nero nebo ImgBurn obraz na disk. Restartujeme a jdeme do BIOSu, kde musíme nastavit prioritu spouštění z jednotky CD/DVD. Uložte nastavení a ukončete. Spusťte z disku a nainstalujte operační systém. (Více detailní informace bude v odkazu níže). Textový editor, ve výchozím nastavení máme terminál. Chcete-li nainstalovat kompilátor g++, otevřete terminál pomocí kombinace alt+ctrl+T a zadejte: sudo apt-get install g++. Budeme požádáni o zadání hesla, zadejte jej a stiskněte Enter. Připraveno.
2. Vytvořte soubor cpp.
Otevřete domovskou složku v správce souborů Nautilus a zároveň otevřete terminál alt+ctrl+t. Do něj napíšeme příkaz touch helloworld.cpp. Dotykový příkaz vytvoří soubor s požadovaným názvem. Nyní můžete minimalizovat terminál a zaměřit se na Nautilus"e. Otevřete náš soubor a napište nejoblíbenější kód na světě:

#zahrnout pomocí jmenného prostoru std; int main())( cout<< "Hello world!"; return 0; }

Zavřít a uložit.

3. Kompilace a spuštění.
Znovu otevřete terminál a zavolejte náš kompilátor příkazem g++ -lm -o output helloworld.cpp . g++ je náš samotný kompilátor a -lm a -o jsou klíčové parametry, se kterými jej spouštíme. output - mít výstupní soubor, kde je umístěn výsledek naší kompilace a za ním následuje název našeho souboru cpp. Stiskněte enter, pokud je program správný, nebudou žádné zprávy. Nyní pro spuštění programu zadejte do terminálu následující: ./output a stiskněte enter. Výsledek „Ahoj světe!“ se zobrazí na obrazovce.
Takže jste napsali svůj první program v C++ pro Linux! Gratuluji a přeji mnoho úspěchů v diverzifikovaném a kvalitním vzdělávání. Vaše kompetence je ve vašich rukou, pamatujte si to.

P.S. Pokud alespoň jeden student udělá to, co jsem napsal, budu považovat své poslání za splněné. Vše nejlepší!
P.S.S. Odkazy.

Mnoho začínajících kodérů se bojí
programování v Linuxu – žádná jednoduchost Windows
a viditelnost. Existuje však i pro Linux
spousta vizuálních pomůcek
programování a není to jen klon Delphi.
Samozřejmě se nemohou stát úplnými
nahrazující stejné Visual Studio, ale docela
pomoci urychlit proces vývoje
programy.

NetBeans

Jedno z nejlepších IDE. Určeno pro
práci s Javou, můžete ji použít
rozvíjet nejen multiplatformní
Java programy, ale také webové aplikace, webové služby a
klienti pro ně, programy J2ME atd. Možná
práce na Windows, Linux, MacOS. IDE je rozšiřitelné
různé pluginy a doplňky, které mohou být
najít na webu. Přitom je vše zdarma
jíst pro hayalvu! Obecně - nezpochybnitelné číslo
jeden.

Návrhář QT/KDevelop

Další výkonné vývojové prostředí zapnuto
platformy KDE a Gnome. Multiplatformní C++
aplikace vycházejí pouze na silnice. Pro
nekomerční Qt programy mohou být
zdarma k použití, existuje
pro téměř všechny distribuce.

Klon Visual Basic, a to nejen v designu,
ale i v jazykových konstrukcích. Perfektní
nástroj pro VB programátory, kteří chtějí
přejít na Linux. Jednoduché a pohodlné rozhraní.
Přístup ke všem hlavním databázím - MySQL,
PostgreSQL atd. Funguje téměř na každého
distribuce.

WYSIWYG editor pro tvorbu webových stránek. v
Hodně mi to připomíná editor Macromedia nebo všechno
stejná FrontPage. Podporuje automatické
pracovat se stránkou přes FTP.

Tvorba prostředí Python a Ruby IDE
programování v jazyce je poměrně jednoduché
a vzrušující. Napsáno vlastně dál
Krajta.

Eclipse vůbec není IDE, ale celá platforma
různé aplikace. Na standard
součástí dodávky jsou další pluginy pro
Podpora a vývoj jazyka Java (JDT).
pluginy pro Eclipse (PDE - Plugin Development Environment). Pro
práce s jinými jazyky by měla být
nainstalované speciální pluginy - v Eclipse
může fungovat téměř na každém
přístupný programovací jazyk. Další
výhoda platí i pro
rozšiřitelnost: obrovské množství
nástroje (zejména pro Javu).
k dispozici také jako pluginy pro Eclipse,
například Ant, JavaDoc, JUnit, JDepend, Check Style, Subversion.
Takže se nemusíme vzdávat
váš systém správy verzí, z vašeho
programy pro kontrolu kvality kódu atd.
Třetí výhodou je, že Eclipse je
multiplatformní prostředí, tzn
existují verze pro různé
operační systémy (které nemohou
dovolit stejné Visual Studio).

JDeveloper

Platforma od Oracle – není open source,
je však stále zdarma. Jak je zřejmé z
názvy se stále používají mezi platformami
Jáva. Používá Sun JDK k práci, takže
Oracle nemá žádné stížnosti na to, co se vytváří
programy ji teoreticky mít nebudou.

A konečně prostředí vizuální kontroly
projekty pro Gnome Desktop. Neméně užitečné
program pro programátory než IDE.

název: Programování v C++ na Linuxu.

Kniha "Programming in C++ on Linux" je věnována vývoji aplikací v C++ ve vývojovém prostředí KDEvelop. Autor knihy poskytuje podrobný popis interakcí mezi komponentami aplikace, zabývá se základy práce s nástrojem Qt Designer a zabývá se ovládacími prvky dialogových oken a třídami, pro které jsou vytvořeny. Kniha učí koncept dokumentu/zobrazení, vytváření prvků aplikačního rozhraní. Témata, jako je ukládání a obnovování různých informací zobrazených na obrazovce, vývoj textových editorů, organizace multitaskingu v aplikacích na základě interakčních procesů a práce se šablonami tříd a funkcí. Na závěr autor uvádí užitečná doporučení pro vytvoření systému nápovědy pro vyvíjenou aplikaci. Kniha je určena profesionálním programátorům.


Kniha je věnována tvorbě aplikací napsaných v C++ ve vývojovém prostředí KDevelop. Je uveden popis interakce komponent aplikace. Zvažujeme práci s nástrojem Qt Designer a popisujeme hlavní ovládací prvky používané v dialogových oknech a také třídy vytvořené pro práci s nimi. Čtenář se seznámí s konceptem Document/View a naučí se vytvářet prvky uživatelského rozhraní aplikace. Jednotlivé kapitoly navíc pokrývají problematiku zobrazování různých informací na obrazovce, jejich ukládání a obnovování ze souboru, vytváření textových editorů, práci se šablonami tříd a funkcí a organizaci multitaskingu v aplikaci na základě interagujících procesů. Nakonec jsou uvedena doporučení pro vytvoření systému nápovědy aplikace.

Obsah:
Úvod
Pro koho je tato kniha určena?
Struktura knihy
Konvence přijaté v této knize
Hardwarové a softwarové požadavky
Kapitola 1 Interakce komponent aplikace
Signály a přijímače
Vysílání signálů
Realizace přijímačů
Realizace spoje
Zpracování událostí
Práce s oknem
Práce se vstupním zaměřením
Pomocí myši
Pomocí klávesnice
Implementace drag and drop
Filtry událostí
Syntetické události
Sekvence zpracování událostí
Závěr
Kapitola 2 Dialogová okna a základní ovládací prvky
Vytvoření konverzační aplikace
Vytvoření šablony aplikace
Vytvoření přednastaveného dialogového okna
Dokončení tvorby konverzační aplikace
Vytváření vlastních dialogových oken
Vytvoření dialogového okna s kartami
Vytvoření průvodce
Kapitola 3 Kontrolní třídy
Vypsat třídu
Třídy lineárního regulátoru a lineárního indikátoru
Práce s datem a časem
Kapitola 4 Třídy aplikací, dokumentů a zobrazení
Víceokenní aplikace Qt
Třída dokumentů
Prezentační třída
Aplikační třída
KDE aplikace pro více oken
Třída dokumentů
Prezentační třída
Aplikační třída
Kapitola 5 Vytváření prvků uživatelského rozhraní
Uživatelské rozhraní knihovny Qt
Provádění změn v nabídce
Práce se stavovým řádkem
Uživatelské rozhraní aplikací KDE
Provádění změn v nabídce
Přizpůsobení panelu nástrojů
Práce se stavovým řádkem
Kapitola 6 Zobrazení informací na obrazovce
Kreslení postav
Práce se štětcem
Překreslování okna
Synchronizace objektů zobrazení
Textový výstup
Práce s bitmapami
Bitmapy závislé na zařízení
Bitové obrazy nezávislé na hardwaru
Kapitola 1 Práce se soubory dokumentů
Ukládání a obnova informací v aplikaci
Přizpůsobení dialogových oken
Provádění změn v nabídce
Nastavení pracovního adresáře
Kapitola 8 Práce s textovými dokumenty
Vytvoření jednoduchého textového editoru
Vytvoření složitějšího editoru
Vytvoření editoru KDE
Kapitola 9 Šablony a třídy kolekcí
Šablony
Koncept šablony
Šablony funkcí
Šablony tříd
Kolektivní třídy
Typy sbírkových tříd
Pole
Propojené seznamy
Mapy
Další sbírkové třídy
Kapitola 10 Implementace multitaskingu v aplikaci
Interakce procesu
Vytvoření klienta pro jednoduchý server
Vytvoření komplexnějšího serveru
Vytvoření klienta
Nějaké poznámky
Kapitola 11 Nápověda v aplikaci
Formuláře pro zasílání referenčních informací
Způsoby přístupu k nápovědě
Způsoby prezentace referenčních informací
Formy podávání informací
Kontextová nápověda k programování
Zobrazování tipů
Zobrazení informací nápovědy ve stavovém řádku
Získání informací o konkrétním prvku
uživatelské rozhraní
Programování nápovědy k příkazům
Formát souboru nápovědy k příkazu aplikace Qt
Vytvoření demo aplikace Qt
Dodatek 1 Co je na CD
Dodatek 2 Internetové zdroje
Předmětový rejstřík


Stáhněte si e-knihu zdarma ve vhodném formátu, sledujte a čtěte:
Stáhněte si knihu Programování v C++ na Linuxu - Nikolay Sekunov - fileskachat.com, rychlé a bezplatné stažení.

Stáhnout pdf
Níže si můžete koupit tuto knihu za nejlepší cenu se slevou s doručením po celém Rusku.