On Monday 02 November 2009 19:14:42 Bahadır Akın wrote:
> Merhabalar,
> Benim bir sorum olacak;
> Programın linux'te derlendikten sonra parametre ile çalışmasını istiyorum
> yani programı
>
> g++ myapp.cpp -o myapp şeklinde derledikten sonra aşağıdaki şekilde
> çalıştırmak istiyorum
>
> *myapp -i data.txt            **( en basitinden data.txt dosyasının
> içindeki bilgiler okunup ekrana yazılacağını düşünelim )*
>
> Bunu nasıl gerçekleyebilirim?
>
> Yardımlarınız için teşekkürler.

Merhaba,

En basiti argc ve argv argumanlarini kullanmak. Biraz daha uzun fakat daha 
esnek olani ise 'getopt' kullanmak. Mesajin sonunda bir ornek veriyorum, 
umarim hatasiz derleniyordur, eger hata verirse sorunsuz olani [1] adresinde 
;)

Caglar

[1] http://www.gnu.org/software/libc/manual/html_node/Example-of-
Getopt.html#Example-of-Getopt

________________________________________________________________________

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
        char *port_name = NULL;
        char *action = NULL;
        int c;
        int res;

        //Iki nokta argumanin ikinci bir parametreye ihtiyac duydugunu soyluyor.
        while ((c = getopt (argc, argv, "a:p:x:y")) != -1)
        switch (c) {
                        case 'p':
                                port_name = optarg;
                                break;
                        case 'a':
                                action = optarg;
                                break;
                        case 'x':
                                res = strtol(optarg, NULL, 10);
                                break;
                        case 'y':
                                //bu arguman herhangi bir ikinci argumana 
ihtiyac duymuyor
                                break;
                        case '?':
                                if(optopt == 'a' || optopt == 'p' || optopt == 
'x')
                                        printf("Option -%c requires an 
argument\n", optopt);
                                return 1;
                        default:
                                abort ();
        }
        
        return 0;
}
        
        

_______________________________________________
Linux-programlama mailing list
[email protected]
http://liste.linux.org.tr/mailman/listinfo/linux-programlama

Cevap