C ve C ++ 'da kullanılan farklı exec sürümleri nelerdir?


91

Bunlar, C (ve C ++) 'da kullanılabilen tüm exec sürümleridir.

execl
execle
execlp
execv
execve
execvp

Aralarındaki fark nedir? Hangisini kullanacağınızı nasıl anlarsınız?

Yanıtlar:


182

Farklılıklar şunların kombinasyonlarıdır:

  1. L vs V : parametreleri çalıştırılan programa olarak iletmek isteyip istemediğiniz

    • L : çağrısında bireysel parametreler (değişken argüman listesi): execl(), execle(), execlp(), veexeclpe()
    • V : char * bir dizi olarak execv(), execve(), execvp()veexecvpe()

    Dizi biçimi, çalıştırılan işleme gönderilecek parametrelerin sayısı değişken olduğunda - önceden bilinmediği gibi, bu nedenle bir işlev çağrısına sabit sayıda parametre koyamazsınız.

  2. E : Sonunda 'e' bulunan sürümler, çalıştırılan program başlatılmadan önce ortaya çıkan süreçler ortamına eklenen bir dizi karakter dizisi olan bir dizi karakter * geçirmenize izin verir. Parametreleri aktarmanın başka bir yolu, gerçekten.

  3. P : İçinde 'p' bulunan sürümler PATH , yürütülecek adlı yürütülebilir dosyayı aramak için ortam değişkenini kullanır. 'P' içermeyen sürümler, yürürlükteki çalışma dizininde değilse yürütülebilir dosyanın adının başına mutlak veya göreceli bir dosya yolunun eklenmesini gerektirir.


2
Şimdiye kadar gördüğüm en iyi açıklama. Neredeyse resmi dokümantasyon / referans kadar kısa, ancak bin kat daha anlamlı, bilgilendirici ve anlaşılır. Teşekkür ederim.
Akito

5

Opengroup, çekirdek c / c ++ işlevleri için en iyi genel referanslardan biridir.

Exec * için belgeler burada: http://pubs.opengroup.org/onlinepubs/009695399/functions/environ.html


2
bu gerçekten soruyu yanıtlamaz ve yalnızca bağlantıdır.
Jean-François Fabre

Buraya gelmeden önce web sitesindeki belgeleri okudum, ancak çok yardımcı olmadı. Açıklamalar ayrıntılı olması gerekse de çok kısadır. Ek olarak, sıfırdan arıyorsanız, aradığınız şey için doğru açıklamayı bulmak zordur.
Akito,

-4

C çalışma zamanı kitaplığının Posix uzantısıdır. Resmi Posix dokümantasyonu yetersizse, kitabı tavsiye edebilirim - Samuel P. Harbison, Guy L.Steele, 2002 "CA Referansı" Sayfa # 416 - bu soruyu ele alın.


2
Bu bağlantı soruyu cevaplayabilirken, cevabın temel kısımlarını buraya eklemek ve referans için bağlantıyı sağlamak daha iyidir. Bağlantılı sayfa değişirse yalnızca bağlantı yanıtları geçersiz hale gelebilir. - Yorumdan
31piy

Linkler okuyucu için yararlı olmak üzere Amazon'a ve posxis standardına yönelikti. Tamam, sorduğunuz gibi bağlantıları kaldırdım, bunun daha iyi olduğuna katılmıyorum bile. Şimdi daha okunaklıysa, vermiş olduğunuz oyu hatırlatın.
bruziuz

1
Cevabınız için olumsuz oy vermedim. Düşük kaliteli olduğunu düşündüğüm cevabınızla ilgili bir inceleme yaptım. Bağlantıları kaldırmak istemedim. Buradaki nokta, gelecekteki okuyucuların cevabı anında anlamasına yardımcı olan bağlantıdan ilgili alıntıları dahil etmektir. Bağlantıları yanıtta yayınlamak kimseye yardımcı olmaz.
31piy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.