#include<unistd.h>

#include<stdio.h>

#include<stdlib.h>

#include<sys/types.h>

#include <fcntl.h>

int main(){

    int fd1 = open("/Users/mymac/Documents/admin's folder/dd.txt", 0);

    int fd2 = creat("/Users/mymac/Documents/admin's folder/copy.txt", 0777);

    char buf[0];

    int n;

    fork();

    

    while((n = read(fd1, buf, 1)) != 0)

        write(fd2, &buf, 1);

    close(fd1);

    close(fd2);

    wait(0);

    


    return 0;



했는데 , write부분에서 context switch가 일어난다던데.


sys/call이 끝나서 발생하는건가? 아님 인터럽트가 끝나서 일어나는거임?


전자쪽이 맞는거같은데.


내가 알기론 context.switch가 syscall의 중간(자발), 마지막(자발적), 인터럽트 끝날때(비자발적) 일어나는걸로아는데..


자세히 설명해줄게이