Programowanie > C/C++

[C] Uruchamianie zewnętrznych programów

(1/3) > >>

annonymous:
Witam
pisałem już wiele programów/skryptów na windowsie, lecz w linuxie tylko te najprostsze

W tym temacie chciałbym się dowiedzieć jak uruchomić zewnętrzny program, czy byście mogli mi wrzucić jakiś gotowiec?

a druga sprawa to czy byście mogli dać mi jakiegoś linka/polecić jakąś dobrą stronę z różnicą bibliotek i kursem pisania na linuxie?

oraz trzecia rzecz, czy da się pisać tak programy by działały na obu systemach? czy łatwiej jest już pisać 2 oddzielne programy?

pisząc programy miałem namyśli jakieś łatwe i krótkie kawałki kodu :D

ultr:
W Linuksie skrypty można pisać w wielu językach skryptowych, ale najpopularniejszy jest Bash. W Google jest bardzo dużo na ten temat, wliczając w to kursy i poradniki.
Bash daje ogromne możliwości i nie ma nawet porównania z dosowymi/windowsowymi bat-ami dodanymi do systemu microsoftu chyba jako nieśmieszny żart.

Programy w C da się pisać przenośnie. Nawet te duże i z graficznym GUI, a w szczególności te małe. Musisz tylko używać przenośnych bibliotek, nie używać tych specyficznych dla danego systemu (np. conio.h), czasem dodać jakiś warunek kompilacji.

Uruchomienie zewnętrznego programu:
w Bashu: podajesz jego nazwę jeśli jest w PATH, a jeśli nie to ścieżkę względną lub bezwzględną:
git
./program2
../katalog2/program2
/usr/bin/git
w C/C++: używasz jednej z funkcji exec() lub ewentualnie system():
http://linux.die.net/man/3/exec
http://linux.die.net/man/3/system

Linki:
https://www.google.com/search?q=c+c%2B%2B+linux+kurs
https://www.google.com/search?q=bash+linux+kurs
i oczywiście manual Linuksa: http://linux.die.net/man/

annonymous:
Thx wielkie
Tak oczywiście na co dzień używam basha jednak jeżeli się nie chce pokazywać kodu, lub chce się lepiej pisać programy to już trza wrócić do C

ok mówisz ze się da przenośnie pisać tylko trzeba używać przenośnych bibliotek, to znaczy co?
jak używam bibliotek właśnie conio.h czy windows.h lub innych to co mam zrobić w linuxie?
Byłbym wdzięczny za rozwinięcie tej myśli
wiem ze są odpowiedniki w linuxie lecz tamte biblioteki mają zupełnie inne funkcje, inaczej się nazywają i inaczej działają, wiec jak pisać przenośnie?

Chodzi mi tylko i wyłącznie o C ew. C++

Dzięki za odpowiedzi

ultr:
Skrypt Basha można skompilować do binarki, np. za pomocą shc:
http://www.datsi.fi.upm.es/~frosal/sources/shc.html

Na Linuksie zamiast conio.h można używać ncurses.
Ale jeśli to jest prosty kod, to nie wymaga w ogóle takich wynalazków i wręcz nie powinien ich używać. Programy powinny przyjmować prosty input i generować prosty output. Po to, by można było używać ich w skryptach i automatyzować pracę. Takie wynalazki jak ncurses psują całą tę koncepcję (conio.h nie ma czego psuć, bo w windows skrypty i tak praktycznie nie istnieją).

Po co Ci windows.h w prostych programach to nie wiem. Jeśli go używasz, to z samej nazwy tego pliku nagłówkowego pokazujesz, że nie chcesz pisać przenośnie tylko wiązać się z winapi.
Jeśli coś już koniecznie musi być nieprzenośnie i specyficzne dla platformy, to wydziel implementację do osobnych plików i dodaj warunki kompilacji, aby na każdej platformie używana była odpowiednia implementacja jakiejś funkcji/klasy.

annonymous:
No właśnie się nie zrozumieliśmy, w C to ja pisałem na windowsie, a teraz zamierzam pisać także na linuxie, i ciężko mi się przerzucić bo wiele funkcji których używałem po protu nie ma lub działają inaczej

no dobra może nie koniecznie proste programy chce pisać ale chce je pisać w C

Na chwilę obecną faktycznie chyba wystarczy mi shc, zaraz sprawdzę jak działa w praktyce

przy okazji zapytam czy można zdeskompilować takowy plik binarny skompilowany poleceniem shc i tym samym odzyskać czysty kod?

natomiast wogóle chce pisać przenośne programy i dlatego zadaję właśnie pytania, nie wiem jak się do tego zabrać, bo teraz umiem napisać 2 różne programy używając różnych funkcji z różnych bibliotek

Nawigacja

[0] Indeks wiadomości

[#] Następna strona

Idź do wersji pełnej