특정 디렉토리를 열어서 그 안의 파일들 가운데, 현재 다른 프로세스에서 사용하고 있는 파일을 체크하려고 합니다.
쉘상의 툴이나 유틸리티 사용하지 않고 C 프로그램으로 구현하려고 하는 데, 힌트 좀 주십시오.
감사합니다.
열려 있는 파일의 이름을 바꾸려고 시도하면 당연히 에러가 나겠죠? 이 예외를 체크하면 됩니다.
[root@tttt 7849]# pwd /proc/7849 [root@tttt 7849]# tree . |-- cmdline |-- cwd -> /home/oracle/prod/ora816i/dbs |-- environ |-- exe -> /home/oracle/prod/ora816i/bin/oracle |-- fd | |-- 0 -> /dev/null | |-- 1 -> /dev/null | |-- 10 -> /home/oracle/prod/ora816i/rdbms/audit/ora_7825.aud | |-- 2 -> /dev/null | |-- 3 -> /dev/null | |-- 4 -> /dev/null | |-- 5 -> /dev/null | |-- 6 -> /dev/null | |-- 7 -> /home/oracle/prod/ora816i/admin/songdb/bdump/alert_ORCL.log | |-- 8 -> /home/oracle/prod/ora816i/rdbms/mesg/oraus.msb | `-- 9 -> socket[15326370] |-- maps |-- mem |-- root -> / |-- stat |-- statm `-- status
프로세스에서 파일을 열면 fd를 할당 받으니.. 프로세스 fd정보를 조회하면.. 원하는 바를 얻지 않을까요?
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
Re: 꼼수 ^^;
열려 있는 파일의 이름을 바꾸려고 시도하면 당연히 에러가 나겠죠?
이 예외를 체크하면 됩니다.
Re: C에서 파일이 파일이 열려 있는지 아닌지 아는 방법 좀...
[root@tttt 7849]# pwd
/proc/7849
[root@tttt 7849]# tree
.
|-- cmdline
|-- cwd -> /home/oracle/prod/ora816i/dbs
|-- environ
|-- exe -> /home/oracle/prod/ora816i/bin/oracle
|-- fd
| |-- 0 -> /dev/null
| |-- 1 -> /dev/null
| |-- 10 -> /home/oracle/prod/ora816i/rdbms/audit/ora_7825.aud
| |-- 2 -> /dev/null
| |-- 3 -> /dev/null
| |-- 4 -> /dev/null
| |-- 5 -> /dev/null
| |-- 6 -> /dev/null
| |-- 7 -> /home/oracle/prod/ora816i/admin/songdb/bdump/alert_ORCL.log
| |-- 8 -> /home/oracle/prod/ora816i/rdbms/mesg/oraus.msb
| `-- 9 -> socket[15326370]
|-- maps
|-- mem
|-- root -> /
|-- stat
|-- statm
`-- status
프로세스에서 파일을 열면 fd를 할당 받으니..
프로세스 fd정보를 조회하면.. 원하는 바를 얻지 않을까요?
댓글 달기