«system-calls» 태그된 질문

프로그램이 시스템 호출을 사용하여 커널 API와 상호 작용하는 방법, 사용 가능한 호출, 작동 방식 등에 대한 질문


2
fork ()와 vfork ()의 ​​차이점은 무엇입니까?
fork ()와 vfork ()의 ​​차이점을 자세하게 이해하고 싶습니다. 매뉴얼 페이지를 완전히 소화 할 수 없었습니다. 또한 동료 중 한 사람에게 " 현재 Linux에는 vfork ()가 없습니다. 전화를해도 내부적으로 fork ()를 호출 합니다."라고 말하고 싶습니다 .

2
Linux에서 "truss -T"및 "truss -U"에 해당합니까?
Linux 에서 Solaris 유틸리티 의 -T및 -U옵션 과 동일한 기능이 있습니까?truss 추적 된 애플리케이션이 호출 할 때 시스템 호출 ( -T) 또는 라이브러리 함수 ( -U) 를 지정해야합니다 . 또는 그렇지 않으면 추적 된 응용 프로그램으로 시작한 프로세스가 주어진 시스템 호출이나 지정된 공유 라이브러리 함수 호출을 수행하자마자 중지 (SIGSTOP에 의해 …

4
vfork 또는 포크의 자식이 exit () 대신 _exit ()를 호출해야하는 이유는 무엇입니까?
의 맨 페이지에서 vfork(): vfork ()는 자식이 execve (2) 또는 _exit (2)를 호출 할 때까지 부모가 일시 중지된다는 점에서 fork ()와 다릅니다. 자식은 execve ()가 자식에 의해 발행 될 때까지 스택을 포함하여 부모와 모든 메모리를 공유합니다. 자식은 현재 함수에서 리턴하거나 exit ()를 호출해서는 안되지만 _exit ()를 호출 할 수 있습니다. …
12 c  system-calls  fork  exit 

2
파일 삽입 syscall이없는 이유
필자가 이해하기 위해 파일을 조작하기 위해 Linux에는 sys_write syscall 만 있으며 파일 내용을 덮어 씁니다 (또는 끝날 경우 확장). Linux에서 파일에 내용을 삽입하거나 삭제하기위한 syscall이없는 이유는 무엇입니까? 모든 현재 파일 시스템에서 파일을 연속 메모리 블록에 저장하지 않아도되므로 효율적인 구현이 가능해야합니다. (파일이 조각 날 것입니다.) "쓰기시 복사"또는 "투명한 파일 압축"과 같은 …

2
로드 가능한 커널 모듈을 사용하여 Linux 3.2.x에 새 시스템 호출 추가 [닫기]
닫은. 이 질문은 주제에 맞지 않습니다 . 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? Unix & Linux Stack Exchange에 대한 주제가 되도록 질문을 업데이트하십시오 . 휴일 칠년 전에 . 리눅스 커널 3.2.x에서 특정 새로운 시스템 호출을 추가하고 싶지만로드 가능한 커널 모듈 (커널을 다시 컴파일하고 싶지 않기 때문에) 인터넷과 SO에 대한 …



1
Linux 재부팅 시스템 호출에서“마법 인수”는 무엇입니까?
Linux 소스 코드, 특히 시스템 호출 코드를 읽으면서 sys_reboot구현 을 살펴 보았습니다 . http://lxr.free-electrons.com/source/kernel/reboot.c#L199 . 199 SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd, 200 void __user *, arg) 201 { 202 ... ... 286 } 중간에 다음과 같은 특정 코드가 있습니다. 209 210 /* For safety, we require "magic" …

1
rmdir이 왜 두 개의 개별 시스템 호출을 연결 해제합니까?
한동안 궁금해하는 것이 있습니다. [15:40:50][/tmp]$ mkdir a [15:40:52][/tmp]$ strace rmdir a execve("/usr/bin/rmdir", ["rmdir", "a"], [/* 78 vars */]) = 0 brk(0) = 0x11bb000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff3772c3000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=245801, ...}) = …

4
스스로 fork ()와 exec ()를 언제 호출해야합니까?
fork () 및 exec () 명령에 대해 배우고 있습니다. fork ()와 exec ()는 보통 함께 호출되는 것 같습니다. (fork ()는 새로운 자식 프로세스를 만들고 exec ()는 현재 프로세스 이미지를 새로운 프로세스로 바꿉니다.) 그러나 어떤 시나리오에서 각 함수를 자체적으로 호출 할 수 있습니까? 이와 같은 시나리오가 있습니까?


2
커널에서 어떤 파일이 sys_clone () 시스템 호출을 사용하도록 fork (), vfork ()…를 지정하는지
ltrace를 사용하여 시스템 호출을 추적하면 fork ()가 sys_fork () 대신 sys_clone ()을 사용한다는 것을 알 수 있습니다. 그러나 리눅스 소스가 정의되어있는 곳을 찾을 수 없었습니다. 내 프로그램은 #include<stdio.h> main() { int pid,i=0,j=0; pid=fork(); if(pid==0) printf("\nI am child\n"); else printf("\nI am parent\n"); } 그리고 ltrace 출력은 SYS_brk(NULL) = 0x019d0000 SYS_access("/etc/ld.so.nohwcap", 00) …

3
프로세스가 동일한 파일 이름으로 다른 파일을 읽도록 만들기
파일을 읽는 응용 프로그램이 있습니다. 프로세스 이름 과 ~ / .configuration 파일 이라고합시다 . 때 processname은 실행 항상 읽고 ~ / .configuration을 다르게 구성 할 수 없습니다. 프로세스 이름 이 실행 중이 아닌 전과 후에 "~ / .configuration"을 사용하는 다른 응용 프로그램도 있습니다 . 포장 processname 의 내용을 대체하는 스크립트에 …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.