C에서 파일 핸들을 사용하여 찾는 방법이 있습니다.
int fseek(FILE *stream, long offset, int whence);
fdinfo
파일 설명자당 하나의 파일도 있습니다.
cat /proc/self/fdinfo/2
pos: 0
flags: 0100002
mnt_id: 24
내가 하고 싶은 것은 fseek
다른 프로세스에 속한 파일 핸들을 호출하는 것입니다. 현재 이것이 가능합니까?
답변1
"아니요"라고 생각합니다만 정정해 주십시오.
/tmp/f
여기서는 테스트 파일( )과 해당 pid를 반영하고 테스트 파일을 열고 절전 모드로 전환하는 Perl 스크립트를 만듭니다 .
echo foobar > /tmp/f;
perl -E'$|=1; print $$; open my $fh, "<", "/tmp/f" or die $!; sleep while 1'
출력된 pid는 19992
다음과 같습니다 /proc/19992/fd
.
$ cd /proc/19992/fd/
$ sudo cat 3
foobar
그리고 에서는 /proc/19992/fdinfo
,
$ cat 3
pos: 0
flags: 02100000
mnt_id: 27
$ sudo cat 3 > 3
bash: 3: Permission denied
$ sudo echo "pos=0" > 3
bash: 3: Permission denied