1.시스템 호출을 사용하여 프로그램을 작성하는것
2.두개의 주요 차이점은 실행 속도와 사용자의 권한이다. 시스템콜은 운영체제 커널에 직접 요청을 해서 os가 직접 처리하여 속도가 빠르며 시스템 작원을 직접적으로 제어하는 것이 가능하다. 반면에 라이브러리 함수는 컴파일된 프로그램에 포함되어 있으며 실행시에 메모리에 로딩한다. 그래서 속도는 시스템콜에 비해서 떨어지는 편이다.
3. 명령은 터미널에서 실행되고 시스템호출은 운영체제 커널 내부에서 실행된다.
man 1 mkdir
man 2 mkdir
4.errno 13은 파일에 대한 접근권한이 없어서 나온 것이다.
5.rmdir은 디렉토리가 비어있는 경우에만 사용이 가능하다.
6.vi ex.c gcc -o ex ex.c ./ex
7.일관된 빌드 환경을 가질 수 있다.
8.malloc사용
9.
//명령행 인자와 getopt함수를 이용하여 다음 명령을 처리하는 프로그램
//1)명령이름 : hanopt
#include <stdio.h>
#include <string.h>
#include <unistd.h>
int main(int argc, char* argv[]) {
int n;
extern char* optarg;
while ((n = getopt(argc, argv, "au:h")) != -1) {
switch (n) {
case 'a':
printf("welcome to unix system programming world!\n");
break;
case 'u':
//printf("%s\n", optarg);
if (strcmp(optarg, "inja")==0) {
printf("nice to meet you 인자\n");
}
break;
case 'h':
printf("-h 입력 명령행 인자는 -a , -u , -h 3가지 존재합니다.\n");
break;
default:
printf("명령행 인자는 -a , -u , -h 3가지 존재합니다.\n");
break;
}
}
return 0;
}'리눅스' 카테고리의 다른 글
| 과제 LS (0) | 2023.04.09 |
|---|---|
| sol2 (0) | 2023.04.05 |
| 1차 과제 완료 (0) | 2023.03.29 |
| 일단 다 함수로 구현. 이제 argc==5인 케이스만 (0) | 2023.03.27 |
| argc==4까지 구현했으며 2인 경우와 4인 경우만 함수로 바꿈. 나중에 3인 케이스도 함수로 해야할듯 (0) | 2023.03.26 |