EXEC

Section: ������ ���α׷��� �Ŵ��� (3)
Updated: 1993�� 11�� 29��
Index
Return to Main Contents
 

�̸�

execl, execlp, execle, execv, execvp - ���� �����ϱ�  

����

#include <unistd.h>

extern char **environ;

int execl( const char *path, const char *arg, ...);
int execlp( const char *file, const char *arg, ...);
int execle( const char *path, const char *arg , ..., char * const envp[]);
int execv( const char *path, char *const argv[]);
int execvp( const char *file, char *const argv[]);  

����

exec �Լ� �迭�� ���� ���μ��� �̹����� ���ο� ���μ��� �̹����� �ٲ۴�. �� �Ŵ��� ����� �Լ����� execve(2) �Լ��� �������̴�. (���� ���μ����� ��ü�� ���� �������� ������ ���ϸ� execve �Ŵ��� �������� �����ض�.)

�̵� �Լ��� �ʱ� ���ڴ� ����Ǿ�� �ϴ� ������ ��θ��̴�.

const char *arg �� execl, execlp, �׸��� execle �Լ��鿡 �ִ� �������� �͵��� arg0, arg1, ..., argn ������ ������ �� �ִ�. �װ͵��� ���� ���α׷��� �̿��� �� �ִ� ���� ����Ʈ�� ��Ÿ���� �ϳ��� ���̻��� null�� ���� ���ڿ��� ����Ų��.

���Ǹ� ����, ó�� ���ڴ� ����Ǿ�� �� ������ �̸��̴�. ���� ����Ʈ�� �ݵ�� NULL �����ͷ� ������ �Ѵ�.

execv �� execvp �Լ��� ���ο� ���α׷��� �̿��Ҽ� �ִ� ���� ����Ʈ�� ��Ÿ���� null�� ���� ���ڿ��� ������ �迭�� �����Ѵ�. ������ ����, ù ���ڴ� ����Ǿ�� �� ���ϰ� ���õ� ���� �̸� �� �����Ѿ� �Ѵ�. ������ �迭�� �ݵ�� NULL �����ͷ� ������ �Ѵ�.

execle �Լ��� ���� ���� ���μ����� ȯ�溯���� �����ؾ� �ϸ�, �Ķ���� ����Ʈ�� �ִ� ���� ����Ʈ�� �߰����� �Ķ���͸� ������ �ִ� argv �迭�� ���� �����͸� ����ġ���� NULL �����Ͱ� �ڵ��� �´�. �̷��� �߰����� �Ķ���ʹ� null�� ���� ���ڿ��� ���� ������ �迭�̸� �ݵ�� NULL �� ������ �Ѵ�. �ٸ� �Լ����� ���� ���μ����� �ִ� �ܺ� ���� environ ���� ���ο� ���μ��� �̹����� ���� ȯ�� ������ �����´�.

�̵� �Լ��� �� ����� Ư���� �ǹ̸� ������ �ִ�.

���� ������ ���� �̸��� slash(/) ���ڸ� �������� �ʴ´ٸ� execlp �� execvp �Լ��� ���������� ã�� ���� shell �� �ൿ�� �����Ѵ�. Ž�� ��δ� PATH ������ ������ ����̴�. �� ������ �������� �ʴ´ٸ�, �⺻ ��� ``:/bin:/usr/bin''�� ���ȴ�. �߰�������, � �������� Ư���ϰ� ó���ȴ�.

���� �㰡���� ���Ͽ� �����Ǿ� �ִٸ� ( execve �� EACCES�� ��ȯ�Ѵ�.), �̵� �Լ����� Ž�� ����� �������� ����ؼ� Ž���Ѵ�. �׷��� ���� � �ٸ� ������ �߰ߵȴٸ�, ���� ���� errno �� EACCES�� �����ϰ� ��ȯ�ȴ�.

���� ������ ����� �νĵ��� �ʴ´ٸ�( execve �� ENOEXEC�� ��ȯ�Ѵ�), �̵� �Լ����� ù ���ڷν� ������ ��ο� �ִ� shell�� �����Ѵ�. (���� �̵� �õ��� �����Ѵٸ�, �߰����� Ž���� �������� �ʴ´�.)  

��ȯ��

���� exec �Լ����� ��ȯ�Ѵٸ�, ������ �Ͼ ���̴�. ��ȯ ���� -1�̸�, ���� ���� errno �� ������ ����Ű���� �����ȴ�.  

����

/bin/sh  

����

�̵� �Լ� ��δ� �����Ҽ� ������ ���̺귯�� �Լ� execve(2)�� ������ ������ � ������ errno �� �����ȴ�.  

���� �׸�

sh(1), execve(2), fork(2), environ(5), ptrace(2)  

ȣȯ

��� �ٸ� �ý��ۿ��� �⺻ PATH�� anti-Trojan-horse ó�� /bin �׸��� /usr/bin�Ŀ� ������ ���� �۾� ���丮�� ������. libc 5.4.7����, �������� ������ ���� �۾� ���丮�� �⺻ PATH�� ����Ѵ�.

������ �����ϴ� ���� ������ ��Ÿ���� �� execlp �׸��� execvp �� �ൿ�� ������ ������ ������. �׷��� ���������� ����ȭ���� ������ POSIX ǥ�ؿ��� �������� �ʴ´�. BSD(�׸��� �ٸ� �ý���)�� �ڵ������� sleep�� �ϸ� ���� ETXTBSY�� �����ٸ� �ٽ� �õ��Ѵ�. Linux�� ����� ������ ���ϰ� �ٷ� ��ȯ�Ѵ�.

����������, �Լ� execlp �� execvp �� ���� ����� �͵� �׸��� ENOMEM �׸��� E2BIG�� ������ ��� ������ �����ϸ� ���ϵȴ�. �̵� �Լ��� ���� ����� �͵� �̿��� ������ �����ٸ� �ٷ� ���ϵȴ�.  

ǥ��

Execl, execv, execle, execlp �׸��� execvp �� IEEE Std1003.1-88 (``POSIX.1'')�� ������.  

����

������ <skyeyes@soback.kornet.net> 2001�� 3�� 8��
�ѱ� Manpage ������Ʈ (http://man.kldp.org) 2005�� 2�� 17��


 

Index

�̸�
����
����
��ȯ��
����
����
���� �׸�
ȣȯ
ǥ��
����

This document was created by man2html, using the manual pages.
Time: 08:01:35 GMT, February 17, 2005