27 Kasım 2019 Çarşamba

execve metodu

Giriş
Şu satırı dahil ederiz.
#include <unistd.h>
İmzası şöyle. pathname parametresi null terminates string olmalı
int execve(const char *pathname, char *const argv[], char *const envp[]);
Bu çağrının ismini "execv with environment" olarak düşünmek lazım. execve ile execv çok benziyorlar. Aralarındaki en önemli fark execve çağrısının en son parametre olarak "ortam değişkenlerinin" tanımlanmasına izin vermesi. Bu parametreyi null geçersek aralarında bir fark kalmıyor.

Örnek
Şöyle yaparız.
int main (int argc, char** argv) {

  int count = atoi(argv[1]);
  char buf[20];
  sprintf(buf, "%d", count);

  char* newargv[3];
  newargv[0] = argv[0] //veya başka bir uygulama yol + adı;
  newargv[1] = buf;    //parametreler
  newargv[2] = NULL;   //environment

  execve(argv[0], newargv, NULL);
  ...
}

Hiç yorum yok:

Yorum Gönder