<<戻る

Q. exec システムコールとは?

A. exec ファミリーは現在のプロセスイメージを新しいプロセスイメージ で置き換える。

#include <stdio.h>
#include <unistd.h>
int main(char **argc, int argv) {
	getchar();
	if(execl("/usr/bin/less","less","/etc/passwd",NULL) == -1) {
		perror("execl");
	}

	return 0;
}

Q. execlとexeclpの違いは?
A. execlは実行パスを指定しなければならないが、execlpは環境変数PATHから実行するものを検索する

#include <stdio.h>
#include <unistd.h>
int main(char **argc, int argv) {
	getchar();
	if(execl("less","less","/etc/passwd",NULL) == -1) {
		perror("execl");
	}

	return 0;
}