Jak przekazywać parametry do programu w c

witam, załóżmy, że chcę odpalić program w języku c z wiersza poleceń wraz z dwoma parametrami. W jaki sposób to zrobić aby program po przyjęciu tych parametrów wstawiał je w odpowiednie miejsce w programie??

bardzo proszę o jakiś przykład

druga sprawa to czy mógłby mi ktoś podać prosty przykład programów typu klient - serwer napisanego w języku c pod linuxa,

ogólnie to ma być serwer, który nasłuchuje czy nie ma do niego połączeń jeśli są to wykonuje żądanie klienta i odsyła do klienta, natomiast program klient ma wysyłać i odbierać do i od serwera na określony adres ip i port zadany właśnie parametrami uruchomienia

bardzo proszę o jakieś wskazówki i przykłady

:slight_smile:

W funkcji main masz dodatkowe dwa argumenty

int main(int argc, char* argv[])

W zmiennej argc zapisana jest ilość parametrów, natomiast argv jest tablicą ciągów znaków.

Np.

Wywołujesz program.exe a1 b2 c3

To w zmiennej argc będzie zapisana wartość 4, natomiast wartości tablicy argv będą takie: argv[0] = program.exe, argv[1] = a1, argv[2] = b2, itd …

:slight_smile:

Co do drugiej sprawy to…przecież jest tyle programów opensource…

SourceForge.net

czyli w programie aby użyć wartości podanej jako parametr przy uruchomieniu odwołujemy się do tablicy argv?

np chcemy zrobić :

wywołujemy program program.exe a1 b2 c3


a w programie mamy takie coś:

zmienna = argv[1];

funkcja (zmienna);

tak to robimy czy się mylę??

:slight_smile:

To zależy czym jest zmienna i co masz przekazać do funkcji.

Jeżeli funkcja przyjmuje napis to:

funkcja(argv[1]);

jeżeli liczbę całkowitą to:

funkcja(atoi(argv[1]));

jeżeli liczbę zmiennoprzecinkową to:

funkcja(atof(argv[1]));

ale w każdym razie trzeba sprawdzić czy ten parametr został przekazany:

if(argc>1) -> to mamy przynajmniej jeden parametr

a co jeśli parametrem będzie adres ip w takiej postaci:

np.

127.0.0.1

?

:slight_smile:

To do programu zostanie przekazany jeden argument, czyli argc == 1 oraz argv[1] będzie się równało “127.0.0.1”

Zgadza się, z tym że argc == 2

Racja, moja pomyłka.

Ogólnie aby wyświetlić parametry programu i jego nazwę wystarczy użyć czegoś takiego:

for(i = 0; i < argc; ++i)

		printf("%s", argv[i]);

wielkie dzięki za pomoc :slight_smile:

już wszystko napisałem :slight_smile: