/proc/self에 추가할 수 있나요?

/proc/self에 추가할 수 있나요?

내 프로그램에 명명된 메모리 영역을 많이 만들고 mmap다른 프로세스가 읽을 수 있도록 어딘가에 배치하고 싶습니다. 한 번에 하나의 프로그램 인스턴스만 실행된다는 보장은 없습니다. 이상적으로는 블록을 아래에 배치하고 싶습니다 /proc/self/<blockname>. 가능합니까? 아니면 매핑 파일을 넣을 다른 곳이 있나요? (내 프로그램은 일반적으로 루트로 실행되지 않습니다.)

나는 (내가 아는 한) 이름을 지정할 수 없으므로 /proc/self/fdor 를 사용하고 싶지 않습니다 ./proc/self/map_files

답변1

/proc아니요, 구조는 생성되기 때문에 의미 있는 방식으로 추가할 수 없습니다 ("실제" 파일 시스템이 아님). /sys이는 일부 컴퓨터에서도 마찬가지입니다. 변경된 구조는 /proc단순하지 않습니다(예제 참조)/proc 아래에 폴더를 만들고 해당 폴더 아래에 항목을 만듭니다.).

추가 자료:

@mark-plotnick은 POSIX 공유 메모리 사용을 제안했습니다.이름.

추가 자료:

답변2

아니요. 커널은 프로세스가 아니라 그 안에 무엇이 있는지 결정합니다. (그것이 당신이 묻는 질문이 아닙니다. 다른 프로세스는 에서 당신의 프로세스를 볼 수 없습니다.)/proc/PID/proc/PID/proc/self/proc/self

프로세스가 자신에 대한 데이터를 전송해야 하는 경우 이 정보를 저장하는 일반적인 위치 /var/run는 관리자가 시작한 프로세스(예: 시스템 서비스)의 경우 아래이거나 /tmp사용자가 시작한 프로세스의 경우 사용자의 홈 디렉터리입니다. 홈 디렉토리는 컴퓨터 간에 공유될 수 있으므로 일반적으로 프로세스 관련 정보를 저장하는 데는 적합하지 않습니다. 최신 Linux 시스템에도 있습니다. 하나를 선택하고 디렉토리 또는 1234가 PID인 것과 같은 규칙을 정의하십시오. 프로세스가 종료되면 디렉터리가 삭제됩니다./run/user/UID/tmp/myapplication-1234/run/user/myapplication/1234

관련 정보