2017-04-06 4 views
3

리눅스 시스템 호출이 오류 코드를 반환하는 방법을 이해하려고했습니다. 나는 times() 시스템 콜에 부딪 혔다. 리눅스 커널에서 오류 코드를 반환

SYSCALL_DEFINE1(times, struct tms __user *, tbuf) 
{ 
    if (tbuf) { 
     struct tms tmp; 

     do_sys_times(&tmp); 
     if (copy_to_user(tbuf, &tmp, sizeof(struct tms))) 
      return -EFAULT; 
    } 
    force_successful_syscall_return(); 
    return (long) jiffies_64_to_clock_t(get_jiffies_64()); 
} 

내 질문

은 다음과 같습니다 :

  1. -EFAULT 작동이 사용자 공간 그리고 만약이 간단한 시스템 호출 사본 일부 데이터가 성공적으로 반환 -EFAULT 아니었다? 빼기가없는 EFAULT일까요?
  2. 부정적인 오류 코드를 반환하는 것이 일반적입니까? man 2 syscalls에서

답변