Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index International Gentoo Users Polskie forum (Polish) Polish OTW
  • Search

[Język C] Programowanie - podstawy.

Rozmowy nie związane ściśle z Gentoo

Moderator: SlashBeast

Post Reply
  • Print view
Advanced search
10 posts • Page 1 of 1
Author
Message
nUmer_inaczej
Apprentice
Apprentice
User avatar
Posts: 165
Joined: Tue Apr 24, 2007 12:26 am
Location: Bydgoszcz

[Język C] Programowanie - podstawy.

  • Quote

Post by nUmer_inaczej » Thu Apr 24, 2014 1:04 am

Witam serdecznie.

Wziąłem się za język C. Podoba mi się - jednak:

1. Jak używać podstawień w tekście (zamiennik seda?)
2. Czy w zamian za np. 'system ("find $HOME -type f - name *.jpg")' znajdę jakąś bibliotekę klasyczą, czy właśnie przeszukiwanie tak się realizuje?
3. Czym zastąpić potoki (znane mi z basha)?

Moje pytania wynikają ze skrzywień (używania tylko basha).
Mam nadzieję, że ktoś mnie nakieruje na odpowiedzi, najlepiej, jeśli będą poparte przykładem.

Dzięki za uwagę.
Pozdrawiam.
Top
Garrappachc
Guru
Guru
User avatar
Posts: 362
Joined: Fri Dec 26, 2008 9:13 pm
Location: Kraków
Contact:
Contact Garrappachc
Website

  • Quote

Post by Garrappachc » Thu Apr 24, 2014 8:29 pm

Whoa, bash a C to totalnie inne światy. Jeżeli chcesz używać C do przeszukiwania systemu i podmieniania w nim znaków, to się nakodzisz, nakodzisz, a i tak nic Ci z tego ciekawego nie wyjdzie. W tego typu przypadkach lepiej zostań przy bashu. C jest raczej niskopoziomowe.
De profundis clamavi ad Te, Domine

emerge --info | virtual aviation
Top
dziadu
Guru
Guru
User avatar
Posts: 467
Joined: Thu May 04, 2006 9:29 am
Location: Kraków/Darmstadt/Munich

  • Quote

Post by dziadu » Mon Apr 28, 2014 12:11 am

Czy masz na mysli rzeczywiście czysty C czy może C/C++?

1. Musisz sprecyzować, co masz na myśli. Czy chesz parsować cały plik tekstowy i podmieniać tekst? Gdyby to był C++ to są biblioteki do tego.
2. Możesz zobaczyć choćby jak find jest zaimplementowane (paczka sys-apps/findutils)
3. A do czego Ci te potoki? W C odpowiednikiem pipe "|" byłoby wywołanie jednej funkcji z argumentem zwracanym przez inną, jeśli chodzi o przekierowania to są funkcje I/O.

No ale na podstawie tego co pytasz, zastanów się czy C jest najlepszym narzędziem dla Ciebie i Twoich zastosowań, może potrzebujesz języka wysokiego poziomu specjalizującego się w przetwarzaniu tekstu, np python?
Top
sebas86
Guru
Guru
User avatar
Posts: 571
Joined: Sun May 01, 2005 8:22 am
Location: Szczecinek / Szczecin
Contact:
Contact sebas86
Website

  • Quote

Post by sebas86 » Mon May 05, 2014 6:51 pm

1. W bibliotece standardowej nie ma nic do wyrażeń regularnych. Musisz zaprząc do pracy jakąś bibliotekę, dla C++ jest coś w BOOST.
2. Robi się to ręcznie i niestety również nie ma wsparcia w standardowej bibliotece. Glibc dostarcza opendir i odpowiednie struktury.
3. W pliku stdio.h jest zdefiniowane stdin, stdout, stderr - dzięki nim możesz pisać i czytać przy użyciu funkcji operujących na uchwycie typu FILE (np. fread, fwrite). Możesz też po prostu używać funkcji piszczących/czytających do/z standardowego wyjścia/wejścia printf, scanf, etc. Później taki program po prostu połącz potokiem z poziomu powłoki.
Nieważne jaka dystrybucja, ważne, że Linux!
Top
nUmer_inaczej
Apprentice
Apprentice
User avatar
Posts: 165
Joined: Tue Apr 24, 2007 12:26 am
Location: Bydgoszcz

  • Quote

Post by nUmer_inaczej » Tue May 06, 2014 2:04 am

Dziękuję Wam za informacje.
Wynikałoby z tego, że pospieszyłem się nieco z zakupem książki Stephaena Prata "Język C. Szkoła programowania".
Doczytam ją jednak do końca, może uda mi się coś w tym języku napisać sensownego.

Póki co Wasze informacje są dla mnie w zupełności wystarczające.
Dzięki i pozdrawiam.
Top
Jacekalex
Guru
Guru
User avatar
Posts: 554
Joined: Thu Sep 17, 2009 5:18 am

  • Quote

Post by Jacekalex » Sun Jun 01, 2014 3:31 am

1. W bibliotece standardowej nie ma nic do wyrażeń regularnych. Musisz zaprząc do pracy jakąś bibliotekę, dla C++ jest coś w BOOST.
Do regexu w C/C++ jest nie tylko Boost, jest też biblioteka PCRE, która jest o tyle sympatyczna, że ma licencję BSD, także można ją bezpiecznie brać do każdego projektu. :)

Code: Select all

dev-libs/libpcre
http://www.pcre.org/

Ma zresztą natywny support do C++, pliczek nagłówkowy:

Code: Select all

/usr/include/pcrecpp.h
jest chyba w każdym Gentoo na świecie. ;)

Jest też jakaś dodatkowa wtyczka specjalnie do C++ (której na tą chwilę nic w systemie nie wymaga):

Code: Select all

dev-libs/pcre++
http://www.daemon.de/PCRE

Pozdro
8)
Last edited by Jacekalex on Sat Jun 07, 2014 9:08 pm, edited 1 time in total.
Top
Garrappachc
Guru
Guru
User avatar
Posts: 362
Joined: Fri Dec 26, 2008 9:13 pm
Location: Kraków
Contact:
Contact Garrappachc
Website

  • Quote

Post by Garrappachc » Sat Jun 07, 2014 11:23 am

Ależ oczywiście, że są takie biblioteki. Tylko że nie są one częścią biblioteki standardowej C. I taki był sens mojej wypowiedzi. Co innego C++ (standard C++11).
De profundis clamavi ad Te, Domine

emerge --info | virtual aviation
Top
Jacekalex
Guru
Guru
User avatar
Posts: 554
Joined: Thu Sep 17, 2009 5:18 am

  • Quote

Post by Jacekalex » Tue Jun 10, 2014 11:55 am

Garrappachc wrote:Ależ oczywiście, że są takie biblioteki. Tylko że nie są one częścią biblioteki standardowej C. I taki był sens mojej wypowiedzi. Co innego C++ (standard C++11).
Nie wiem, co rozumiesz przez bibliotekę standardową w kontekście boosta, widzę (w kontekście bibliotek dotyczących wsparcie dla regexa) liczba paczek wymagających boosta i PCRE jest podobna, ale paczki wymagające PCRE są "cięższe gatunkowo":

Porównywałem wyniki:

Code: Select all

equery d dev-libs/boost
oraz:

Code: Select all

equery d dev-libs/libpcre
Pozdro
8)
Last edited by Jacekalex on Wed Jun 11, 2014 1:08 am, edited 1 time in total.
Top
sebas86
Guru
Guru
User avatar
Posts: 571
Joined: Sun May 01, 2005 8:22 am
Location: Szczecinek / Szczecin
Contact:
Contact sebas86
Website

  • Quote

Post by sebas86 » Tue Jun 10, 2014 5:08 pm

Jest jakiś sens tych wypowiedzi? Nikt nie mówił, że BOOST jest częścią biblioteki standardowej, po prostu wskazałem prawdopodobnie najbardziej popularny zestaw dla języka C++, tym bardziej, że BOOST to nie tylko wyrażenia regularne ale masa innych elementów, które bardzo ułatwiają pracę i ładnie się ze sobą łączą (nie mówiąc już, że trzymają się konwencji dobrze ugruntowanych w STL). Ale to C++, dla C pozostają stety-niestety inne narzędzia.
Nieważne jaka dystrybucja, ważne, że Linux!
Top
lsdudi
Guru
Guru
User avatar
Posts: 392
Joined: Sun Nov 12, 2006 9:53 pm
Location: Warsaw

Re: [Język C] Programowanie - podstawy.

  • Quote

Post by lsdudi » Wed Jun 11, 2014 7:08 pm

nUmer_inaczej wrote:Witam serdecznie.

Wziąłem się za język C. Podoba mi się - jednak:

1. Jak używać podstawień w tekście (zamiennik seda?)
2. Czy w zamian za np. 'system ("find $HOME -type f - name *.jpg")' znajdę jakąś bibliotekę klasyczą, czy właśnie przeszukiwanie tak się realizuje?
3. Czym zastąpić potoki (znane mi z basha)?

Moje pytania wynikają ze skrzywień (używania tylko basha).
Mam nadzieję, że ktoś mnie nakieruje na odpowiedzi, najlepiej, jeśli będą poparte przykładem.

Dzięki za uwagę.
Pozdrawiam.
Podejrzewam że lepiej zrobisz jak chwilowo dasz sobie spokój z C.
Naucz sie najpierw jakiegoś jezyka wyższego poziomu typu python/perl/ruby, Brakuje ci podstawowej wiedzy programistycznej, a klejenie kodu w C na podstawie kodu z basha to jeszcze gorzej niż pisanie w C na podstawie mieszanki jawy i PHP :]. Do wszystkiego są biblioteki ale raz trzeba wiedzieć jak je uzywać, niektóre z nich wymagają naprawdę sporej wiedzy na temat dzialania systemow operacyjnych i nieskopoziomowych wywolan. Dodakowo rozne filozofie w tworzeniu bibliotek powoduja ze uzywanie tych bibliotek to czesto katorga i meka, nie mowiac juz ze dokumentacja czetso jest tylko iluzoruczna.

PHP btw to mieszanka perla/basha/C/C++ z dodatkiem jawy.
RLU#416942
Top
Post Reply
  • Print view

10 posts • Page 1 of 1

Return to “Polish OTW”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Foundation, Inc.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy