jak wiadomo zalozeniem c jest to ze ma dzialac wszedzie.
wiec moje pytanie, jakiego standardu sie trzymac? jakich funkcji uzywac do ingerencji w os?
czy ansi c ma jakikolwiek sens? funkcje typu fopen, etc?
jak wiadomo zalozeniem c jest to ze ma dzialac wszedzie.
wiec moje pytanie, jakiego standardu sie trzymac? jakich funkcji uzywac do ingerencji w os?
czy ansi c ma jakikolwiek sens? funkcje typu fopen, etc?
"Jak wiadomo" - pierwsze slysze mowiac szczerze. Dzialac wszedzie to ma np. Java. C ma byc szybki. Ja mimo wszystko korzystalbym z c++ i stla.
Jeżeli chcesz mieć jakąś sensowną przenośną funkcjonalność w C lub C++ musisz do tego użyć dodatkowych przenośnych bibliotek jak GLib lub Qt np.
Jak wiadomo wszędzie w C działa absolutne minimum. Nie mówiąc już że nawet zakres zmiennych zależą od architektury kompa ...
Porady Mozilli na temat pisania przenośnego kodu (C++, ale także C):
https://developer.mozilla.org/en/C___Portability_Guide
Radzę to sobie przefiltrować, bo niektóre wydają się... kontrowersyjne, czy może raczej "lekko przestarzałe". Praktycznie zabraniają tam używania wyjątków, czy STL-a, ale akurat te wytyczne Cię nie dotyczą, jeśli masz zamiar używać tylko C. Ale może znajdziesz tam też jakieś porady przydatne dla Ciebie.
czyli jak, asm?
skoro przenosnosc to java, to po co meczyc sie w c, skor i tak nie pojdzie gdzie chce?
aha i zalezy mi zeby dzialal tylko na linuxie/bsd/etc, winzgrozy i mac mnie nie obchodza.
No asm to jest dopiero przenosny, nie ma co...
Co do meki - jezyk to tylko narzedzie, dla jednym to meka, dla innych zabawa. Java pojdzie 'prawie' wszedzie, wiec nie zastanawialbym sie dlugo, jesli to wlasnie przenosnosc jest najwazniejsza.
chodzi mi o to, ze chcialbym sie dowiedziec jakie panuja standardy w tym.
czyli w czym pisac, by program trafil do jak najwiekszej ilosci odbiorcow. programy nie zbyt skomplikowane, glownie narzedzia np do sprawdzania www czy parsowania danych.
uwazam ze C, ale teraz jakie biblioteki?
posix - raczej tak
ansi - nie za bardzo
jesli chodzi o api (um/km) to znam w stopniu podstawowym zarowno linuxa jak i windowsa.
kolejna sprawa to potrzebuje jakiejs dokumentacji to bibliotek jakie wybiore.
i zastanawiem sie nad asmem, w prawdzie w c moge teoretycznie zrobic co w asm, ale nie zabardzo mi to wyglada w praktyce.
nie wiem skad brac includy, nie wiem jak dolaczyc kod asm do c, syscalle tez sie roznia, ehh.
funkcje read/write/open/creat/connect - to jest posix, tak?
recv/send/bind - to tez posix?
jakis manual plx!
Kup sobie pierwszą lepsza książkę o C, polecam np tą http://helion.pl/ksiazki/cpprim.htm, dowiesz się jak ... wiele nie wiesz? :-)
Następnie poczytaj o założeniach JAVA.
c-c-c-c-c napisał(a)
czyli w czym pisac, by program trafil do jak najwiekszej ilosci odbiorcow. programy nie zbyt skomplikowane, glownie narzedzia np do sprawdzania www czy parsowania danych.
do takich założeń asm jest najgorszym z możliwych wyborów
c zresztą też tu szału nie robi, a skoro chcesz robić pod uniksy to może python był by dla ciebie łatwiejszy ?
PS. standardowo na unixach zwykło się do takich rzeczy perl'a używać, ale i tak polecam python ze względu na czystszą składnie
c-c-c-c-c napisał(a)
uwazam ze C, ale teraz jakie biblioteki?
posix - raczej tak
ansi - nie za bardzo
sprawa jest prosta:
dokumentacje sobie wygoogluj wpisując jedno z powyższych
Jeżeli masz problemy z includami i linkowaniem bibliotek to raczej byś musiał najpierw poczytać jak się kompilatorami GCC obsługiwać.
Albo przejdź na pythona lub inny język gdzie nie musisz ogarniać kompilacji na tak niskim poziomie.
bswierczynski napisał(a)
Porady Mozilli na temat pisania przenośnego kodu (C++, ale także C):
https://developer.mozilla.org/en/C___Portability_Guide
Radzę to sobie przefiltrować, bo niektóre wydają się... kontrowersyjne, czy może raczej "lekko przestarzałe". Praktycznie zabraniają tam używania wyjątków, czy STL-a, ale akurat te wytyczne Cię nie dotyczą, jeśli masz zamiar używać tylko C. Ale może znajdziesz tam też jakieś porady przydatne dla Ciebie.
hehe, wymieniles dokladnie moje wytyczne z pracy :D
ogolnei wyjatki nie kompiluja sie wszedzie - sa w uzyciu platformy nie rozwijane od np: 20 lat i nowy kod rownierz na nich musi dzialac, co do stl to sie go nie uzywa bo nie jest threadsafe, boost nie kompiluje sie wszedzie, do tego egzotyczne kompilatory miewaja rozne dziwne bugi...