분류 전체보기
C / LINUX execl(3), execv(3), execle(3), execve(2), execlp(3), execvp(3)
함수 기능 exec 계열 함수는 현재 수행되고 있는 프로세스를 대신하여 새로운 프로세스를 수행시키는 함수 -l argument list -v argument vector -e 환경변수 유무 -p p있으면 filename 없으면 pathname ex ) execvp 는 argument vector + filename 함수 원형 #include int execl(const char *filepath, const char *arg0, ... /* (char *) 0 */); int execv(const char *filepath, char *const argv[]); int execle(const char *filepath, const char *arg0, ... /* (char *) 0, char *cons..
C / LINUX wait(2) waitpid(2)
함수 기능 프로세스의 종료 상태를 회수하는 시스템 호출 함수 자식프로세스의 종료가 언제 발생할지 부모프로세스는 알 수 없으므로 커널은 시근ㄹ을 통해 부모 프로세스에게알림 wait 가장 먼저 종료된 자식 프로세스 기다림 waitpid 특정한 자식프로세스를 지정 함수 원형 #include #include pid_t wait(int *statloc); pid_t waitpid(pid_t pid, int *statloc, int options); 함수 파라메터 statloc 종료될때 상태 값 pid wait할 pid id 함수 예제 wait1 #include #include #include #include #include #define EXIT_CODE 1 int main(void){ pid_t pid; int..
C / LINUX getpid(2) getppid(2) getuid(2) geteuid(2) getgid(2) getegid(2)
함수 기능 pid들을 리턴하는 시스템 호출 함수 함수 원형 #include #include pid_t getpid(); pid_t getppid(); uid_t getuid(); uid_t geteuid(); gid_t getgid(); gid_t getegid(); 리턴 값 : getpid(2) - 호출한 프로세스의 프로세스 ID getppid(2) - 호출한 프로세스의 부모 사용자 ID getuid(2) - 호출한 프로세스의 실제 사용자 ID geteuid(2)- 호출한 프로세스의 유효 사용자 ID getgid(2) - 호출한 프로세스의 유효 그룹 ID getegid(2) - 호출한 프로세스의 유효 그룹 ID 함수 예제 #include #include #include #include int main(..
C / LINUX setjmp(3) longjmp(3)
함수 기능 함수 경계를 넘나드는 분기를 수행하기 위해 사용하는 라이브러리 함수 다른함수에 설정된 레이블로 점프 많은 함수호출로 깊이 중첩되어있을경우 해당 함수에서 나와 다른 상위레벨 함수로 이동가능 함수 원형 #include int setjmp(jmp_buf env); void longjmp(jmp_buf env, int val); 리턴 값 : 직접 호출된 경우에는 0 longjmp를 통해 호출된 경우에는 0이 아닌 값 함수 파라메터 env setjmp가 위치한 스택환경과 레지스터 환경을 저장하는 환경변수 val 함수 예제 #include #include #include #include void ssu_nested_func(int loc_var, int loc_volatile, int loc_regist..
C / LINUX vfork()
함수 기능 생성도리 새 프로세스가 exec 계열 함수로 새 프로그램을 실행하는 경우에 사용하는 시스템 호출 함수 자식이 먼저 실행됨이 보장 함수 원형 #include #include pid_t vfork(); 함수 예제 #include #include #include #include #include void ssu_local_func(void); int main(void){ printf("Before vfork\n"); ssu_local_func(); printf("After ssu_local_func, my PID is %d\n",getpid()); exit(0); } void ssu_local_func(void){ pid_t pid; if((pid = vfork())==0) printf("I'm ch..
C / LINUX fork()
함수 기능 기존 프로세스가 새 프로세스를 생성할 떄 사용하는 시스템호출 함수 자식은 부모의 자료구조, 힙 , 스택의 복사본을 가지기 때문에 동일한 메모리영역을 공유하여 사용하진않지만 텍스트 구역은 공유하여 사용한다. 일반적으로 부모와자식의 실행순서는 알수가 없다. 함수 원형 #include pid_t fork(); 리턴 값 : 자식프로세스인 경우 0, 부모프로세스인경우 자식의 pid 에러시 -1 함수 예제 fork1 #include #include #include char glob_str[] = "write to standard output\n"; int glob_val = 10; int main(void){ pid_t pid; int loc_val; loc_val = 100; if( write(STDO..
C / LINUX opendir(3) readdir(3) rewinddir(3) closedir(3) telldir(3) seekdir(3)
함수 기능 opendir 디렉토리를 열어주는 함수 readdir 디렉토리 내부파일 읽는 함수 closedir 디렉토리를 닫는 함수 rewinddir 디렉토리 포인터를 다시 처음으로 돌려놓는 함수 telldir 디렉토리 포인터의 현재위치 알림 함수 seekdir 디렉토리 포인터의 현재위치 수정 함수 함수 원형 #include #include DIR *opendir(const char *filepath); struct dirent *readdir(DIR *dp); void rewinddir(DIR *dp); int closedir(DIR *dp); long telldir(DIR *dp); void seekdir(DIR *dp, long loc); 함수 파라메터 filepath 디렉토리 경로 dp 디렉토리 포..
C / LINUX utime()
함수 기능 파일의 최정 접근 시간과 최종 변경 시간을 변경하는 시스템 호출 함수 원형 utimebuf 구조 struct utimbuf { time_t actime;// 접근 시간 time_t modtime;// 수정 시간 }; #include #include int utime(const char *filepath, const struct utimbuf *time); 리턴 값 : 성공시 0 에러시 -1 함수 파라메터 filepath 대상 파일 경로 time 변경될 시간 함수 예제 #include #include #include #include #include #include int main(int argc, char *argv[]){ struct utimbuf time_buf; struct stat sta..
C / LINUX getcwd(2) get_current_dir_name(2)
함수 기능 현재 작업 디렉토리에 대한 전체 경로 이름을 얻을 수 있는 시스템 호출 get_current_dir_name = getcwd(NULL,0) 함수 원형 #include char *getcwd(char *buf, size_t size); char *get_current_dir_name(); 리턴 값 : 성공 시 현재 작업 디렉토리의 pathname, 에러시 null 리턴 함수 파라메터 BUF 현재작업디렉토리 경로저장할 버퍼 SIZE 버퍼 사이즈 함수 예제 #include #include #include #define PATH_MAX 1024 int main(void){ char *pathname; if(chdir("/home/oslab")
C / LINUX chdir(2) fchdir(2)
함수 기능 현재 작업 디렉토리를 변경하는 시스템호출 chdir 지정한 디렉토리에서 많은 파일처리할 필요가 있을 때 유용하게 사용 함수 원형 #include int chdir(const char *pathname); int fchdir(int fd); 리턴 값 : 성공시 0 에러시 -1 함수 파라메터 pathname 지정한 디렉토리로 이동 함수 예제 #include #include #include int main(void){ if(chdir("/etc")