해바

Lab #7 본문

System Programming

Lab #7

Bacha 2019. 11. 18. 01:15

시스템 호출 getenv, setenv 등을 사용하여 환경 변수 PATH의 현재 값을 지우고 Lab #7이 저장된 directory 값으로 변경하는 프로그램을 작성하라.

 

 

// env.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>

int main(int argc, char* argv[]) {
    char* path, *cwd;

    if(argc != 2) {
        printf("usage: a.out <pathname>\n");
        exit(1);
    }

    if((path = getenv(argv[1])) == NULL) {
        printf("File does not exist.\n");
        exit(1);
    }
    printf("BEFORE ENV : %s\n", path);

    cwd = getcwd(NULL, BUFSIZ);					// NULL일 경우 malloc처럼 동적할당해서 가져옴

    if(!setenv(argv[1], cwd, 1)) {
        path = getenv(argv[1]);
        printf("\nSUCCESS\n\n");
    }
    else {
        printf("\nFAIL\n\n");
        exit(1);
    }

    printf("AFTER ENV : %s\n", path);

    exit(0);
}

 

 

컴파일 :

%gcc env.c

 

실행 :

%./a.out PATH

'System Programming' 카테고리의 다른 글

Lab #9  (0) 2019.11.18
LAB #8  (0) 2019.11.18
Lab #6  (0) 2019.11.16
Lab #5  (0) 2019.11.16
Lab #4  (0) 2019.11.16
Comments