C'deki Komut Satırı Argümanları Açıklaması
Yayınlanan: 2022-04-29Komut satırı argümanları, bir programın dahili olarak değil dışarıdan kontrol edilmesi gerektiğinde kullanılır. Argümanların doğrudan birincil yönteme iletildiği geliştiriciler için bir metin arabirimidir.
Bir işlev çağrıldığında içinde iletilen değerler, bağımsız değişkenler olarak adlandırılır. Başka bir deyişle, bir argüman, çağrıldığında belirli bir yönteme iletilen bir parametredir.
sözdizimi :
int ana() { /* … */ }
Yukarıdaki kod komutu alır ve çalıştırılması için bilgisayarın işletim sistemine iletir. Bu komutlar, bir kod yürütülürken her zaman çağrılır.
CC ve C++ komut satırı bağımsız değişkenleri, basitlikleri ve kolayca deşifre edilebilir sözdizimleri nedeniyle uygulanması oldukça kolaydır.
Komut satırı bağımsız değişkenlerini iletmek için ana işlevin iki bağımsız değişkenle tanımlanması gerekir:
- Komut satırı bağımsız değişkenlerinin toplam sayısı
- Komut satırı argümanlarının tam listesi
sözdizimi :
int main(int argc, char *argv[]) { /* … */ }
- argc (ARGument Sayısı) , komut satırı bağımsız değişkenlerinin toplam sayısını depolayan bir tamsayı veri türü olarak tanımlanır. Anlaşılır bir şekilde, bu her zaman negatif olmayan bir değer olmalıdır.
- argv (ARGument Vektörü) , komut satırı bağımsız değişkenlerinin tüm listesini depolamak için kullanılan karakter veri türünün bir dizi işaretçisini belirtir.
Komut satırının yardımıyla geliştiriciler, bilgisayarlarındaki bir dizi dosya ve klasöre erişebilir. Birkaç komut satırı argümanı içeren belirli bir program, verilen verilerin kaynaklarını veya hedeflerini hızlı bir şekilde tanımlayabilir. Ayrıca programın işleyişini değiştirme potansiyeline sahiptir. Oluşturma sürecini kaynak denetimine sokmayı kolaylaştırır.
Geliştirme alanında, çok çeşitli görevler gerçek görselleştirme gerektirmez. Bu gibi durumlarda, tüm fonksiyonlar komut satırı argümanları yardımıyla gerçekleştirilebilir. Gerçek bir grafik arayüz için çok nadir bir gereksinim vardır. Bu, çok fazla finans, çaba ve kaynak tasarrufu yapmanıza yardımcı olur.
Dünyanın en iyi Üniversitelerinden Çevrimiçi yazılım geliştirme kurslarını öğrenin. Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.
Özellikler | C'de Komut Satırı Argümanları
Komut satırı argümanları oldukça ilginç ve kullanışlı özelliklere sahiptir. Bunlar aşağıdaki gibidir:
- Programın adını yazdırmak için komutun argv[0] olması gerekir.
- argv[argc] aslında bir boş göstericidir
- Kullanıcının sağladığı ilk argümanı yazdırmak için komutun argv[1] olması gerekir.
- Kullanıcı komut satırı argümanlarını terminalden iletir
- Bu komutların kullanımı, programın içindeki değerleri sabit kodlamak yerine programları dışarıdan kontrol etmektir.
- Komut satırı argümanları her zaman main() işlevine iletilir
- İlk komut arazi argümanı argv[1] iken son komut argv[n]'dir.
Komut Satırı Argümanı Örneği
Aşağıda, C'deki komut satırı argümanları için bir demo program bulunmaktadır:
// Örneklemek için C programı
// komut satırı argümanları
#include<stdio.h>
int main(int argc,char* argv[])
{
int sayacı;
printf(“Program Adı: %s”,argv[0]);
if(argc==1)
printf(“\nProgram Adı Dışında Ekstra Komut Satırı Argümanı Geçmedi”);
if(argc>=2)
{
printf(“\nGeçilen Bağımsız Değişken Sayısı: %d”,argc);
printf(“\n—-Aşağıdakiler Komut Satırı Argümanları Geçildi—-“);
for(sayaç=0;sayaç<argc;sayaç++)
printf(“\nargv[%d]: %s”,sayaç,argv[sayaç]);
}
0 döndür;
}
Çıktı çeşitli senaryolara göre farklılık gösterir. Bunlar ayrı ayrı açıklanmıştır.
- Argüman olmadan:
Aşağıdaki çıktıyı üretmek için kodun bir argüman iletilmeden yürütülmesi gerekir:
Çıkış 1 –
$ ./a.out
Program adı: ./a.out
Program Adı Dışında Fazladan Komut Satırı Argümanı Geçmedi
- Üç argümanla:
Aşağıdaki çıktıyı üretmek için kodun üç bağımsız değişkenle yürütülmesi gerekir.
Çıkış 2 –
$ ./a.out Birinci İkinci Üçüncü
Program adı: ./a.out
Geçilen Argüman Sayısı: 4
—-Aşağıdakiler Geçilen Komut Satırı Argümanları mı—-
argv[0]: ./a.out
argv[1]: İlk
argv[2]: İkinci
argv[3]: Üçüncü
- Tek bir argümanla:
Aşağıdaki çıktıyı üretmek için kodun, tırnak içindeyken boşlukla ayrılması gereken tek bir argümanla derlenmesi ve yürütülmesi gerekir.
Çıkış 3 –
$ ./a.out “Birinci İkinci Üçüncü.”
Program adı: ./a.out
Geçilen Argüman Sayısı: 2
—-Aşağıdakiler Geçilen Komut Satırı Argümanları mı—-
argv[0]: ./a.out
argv[1]: Birinci İkinci Üçüncü
- Tırnak içinde ve boşlukla ayrılmış tek bir argümanla:
Aşağıdaki çıktıyı üretmek için kod, boşlukla ayrılmış tek bir argümanla ancak tek tırnak içinde derlenmeli ve yürütülmelidir.
Çıkış 4 –
$ ./a.out 'Birinci İkinci Üçüncü'
Program adı: ./a.out
Geçilen Argüman Sayısı: 2
—-Aşağıdakiler Geçilen Komut Satırı Argümanları mı—-
argv[0]: ./a.out
argv[1]: Birinci İkinci Üçüncü
C'de Komut Satırı Argümanlarının Avantajları
C'de komut satırı argümanlarını kullanmanın birkaç faydası vardır. Bunlar aşağıdaki gibidir:
- C'deki komut satırı argümanları, bir programcı veya kullanıcı değerleri dahili olarak yapmak yerine programa içeriden iletmek istediğinde kullanılabilir.
- Komut satırı uygulamaları, toplu iş dosyalarında veya komut dosyalarında kullanılmak üzere çok kolay bir şekilde yapılabilir. Bu, otomatik test veya derlemeler söz konusu olduğunda büyük bir yardım olarak gelir.
- Programcılar araçları kullanmak yerine yazarlarsa, komut satırının geliştirilmesi daha kolaydır. Argümanları girmek, bir metin akışının çıktısını almaktan çok daha karmaşık ve zaman alıcı bir görev olarak kabul edilir.
- Giriş, çıkış ve hata akışları, çeşitli dosya ve uygulamalardan bilgi gönderildiğinde veya alındığında çok kolay bir şekilde yeniden yönlendirilebilir.
- Komut satırı argümanlarındaki hata döndürme mekanizması oldukça standart ve basittir.
- Bir programcı veya kullanıcı evden veya yolda erişim sağlamaya çalıştığında, temel olarak mobilken, uzak kabuklar veya diğer benzer bağlantılar üzerinden kullanmak, görevlerin yerine getirilmesini en azından kolaylaştırır.
- Birden fazla dosya belirleme işlevi için, geliştirici veya programcının mevcut bilgisinden yararlanan ve bunlara dayanan tanımlı joker karakter sözdizimi standartları mevcuttur.
- Komut satırları zorlayıcı ve son derece hızlıdır.
Çeşitli komut satırı argümanlarındaki avantajlardan bahsederken, bunları nasıl uygulamanız gerektiğine dair başka bir ayrıntılı örnek veya gösterim aşağıdadır.
#include <stdio.h>
#include <conio.h>
// komut satırı argümanlarının programa iletildiği ana yöntem çağrılır
int ana(int argc, karakter *argv[])
{
// bir tamsayı değişkeni tanımlandı
int a;
//programa iletilen argümanların sayısının ikiden büyük veya eşit olup olmadığını kontrol etmek için koşul uygulanırsa ve koşul doğruysa, programa iletilen komut satırı argümanları yazdırılır. Aksi takdirde, programa herhangi bir argüman iletilmez, yazdırılır
if(argc >= 2)
{
printf(“Programa iletilen argümanlar:\n”);
for(a = 1; a < argc; a++)
{
printf(“Programa iletilen argüman: %s\t”, argv[a]);
}
}
başka
{
printf(“Programa herhangi bir argüman iletilmez\n”);
}
0 döndür;
}
Çıktı:
Programa herhangi bir argüman iletilmez.
Komut satırı argümanları, ana yöntem çağrılarak yukarıda belirtilen kodda programa iletilir. Bir sonraki adım, bir tamsayı değişkeninin tanımıdır. Daha sonra, programa geçirilen argümanların sayısının 2'den büyük veya eşit olup olmadığını kontrol etmek için koşul iletilir. Koşul doğruysa, programa geçirilen komut satırı argümanları yazdırılır. Değilse, programa hiçbir argüman iletilmez ve yazdırılır.
Sonuçlar
upGrad'ın Yazılım Geliştirmede Yönetici PG Programına kaydolarak C ve C++'da komut satırı argümanlarının önemi hakkında daha fazla bilgi edinin – Tam Yığın Geliştirmede Uzmanlık . 13 aylık kurs, hevesli BT profesyonellerinin Java, Spring, Hibernate, HTML, React, Git ve Quora ve Swiggy gibi karmaşık uygulamalar oluşturmak için bir dizi başka programlama dili ve aracında ustalaşmasına yardımcı olmak için tasarlanmıştır.
Program ayrıca Veri Bilimi ve Makine Öğrenimi alanında 4 aylık ücretsiz Yönetici Sertifikası sunar.
C'de komut satırı argümanlarını uygularken programcıların karşılaşması gereken temel dezavantajlar nelerdir?
C'deki komut satırı argümanları geliştiriciler ve programcılar için uygun olsa da, birkaç dezavantajı vardır. Temel bilgilere sahip olmayan ve bu komutlarla çalışmaya alışkın olmayan kişiler, özellikle kısa sürede öğrenmek ve uyum sağlamakta oldukça zorlanabilirler. Ancak bu, deneyimli programcılar ve geliştiriciler için bir sorun değildir. Ancak, bazen farklı veya bitişik alanlardan gelebilecek genç çalışanlar için bir engel olduğunu kanıtlıyor. Ayrıca, komut satırı argümanlarının uygulanması ve yürütülmesi için bir klavye gerekir. Birisinin telefonu veya iPad'i vb. aracılığıyla erişmesi gerektiğinde bu genellikle bir engel haline gelir.
Komut satırı bağımsız değişkenlerini ayırmak için kullanılan sınırlayıcılar hangileridir?
Komut satırı bağımsız değişkenlerini ayırmak için genellikle boşluklar kullanılır. Komut adını parametrelerinden ayırırlar ve çeşitli parametreleri kendi aralarında ayırırlar. Ayrıca, farklı değerlerin bir listesini ayırırken kullanışlıdırlar. Çoklu boşluklar genellikle tek bir boşluk olarak kabul edilir. Bunun tek istisnası, alıntılanan bir dizede veya tek tırnak içine alınmış bir yorumda olur.
Komut satırı argümanlarını dönüştürmek mümkün mü?
Tüm komut satırı bağımsız değişkenleri bir dize olarak iletilir. Sayısal değerler her zaman programcılar veya kullanıcılar tarafından manuel çaba kullanılarak dahili formlarına dönüştürülmelidir. Ana işlev, genellikle bir dizi dizi olan parametrelerini her zaman alır. Bu, ana işlevin kabul ettiği tek işlev argümanıdır. Dize veri türleri, komut satırı argümanlarını depolarken kullanılmak üzere yapılmıştır.