| [ CnUnix ] in KIDS 글 쓴 이(By): HellCat (Nobody) 날 짜 (Date): 2002년 10월 23일 수요일 오전 02시 44분 12초 제 목(Title): Re: [Q] fopen에서. fopen() 과 stat() 만 가지고는 열기전에 결정하기는 좀 부족합니다. 그냥 디렉토리 퍼미션만 체그 한다면 프로그램상에서 effective user id 하고 디렉토리 임자 비교하고 그게 다를 경우에는 또 egid 를 비교하고 해서 필요한 퍼미션 비트를 비교 해야 하구요. 그리고 또 마운트 옵션도 비교 해야 하고 디스크 쿼터 옵션 봐야 합니다. 디렉토리 퍼미션이 쓸수 있다고 해서 다 쓸수 있는 것은 아니니까요. 리드온리 마운트도 가능하고 또 뭐 여러가지 링크 내지는 꽁수를 쓴 마운트도 있을수 있고, 디스크 쿼터에 걸릴수도 있고 또 요새는 시꾸리 기능이 많이 늘어서 해야할 일이 더 많아 질수도 있습니다. 역시 제일 편한것은 포터블 한 코드는 open () 으로 연다음에 레코드 락으로 예상 파일 싸이즈만큼 한번 락을 해보고 닫은 담에 unlink() 하는게 좋겠죠. 이것저것 실패할 경우를 다 따져서 머리굴려서 코드 짜려면 포터블 하지 않은 코드가 될수도 있고 또 미쳐 생각 못하고 넘어가는 경우도 있을 수 있고 또 젤 중요한 것은 코드 짜고 릴리스 했는데 다음날 패치 인스톨 내지는 오에스 업그레이드 했더니만 새로운 시큐리티 피쳐에 새로운 파일시스템 지원에 마운트 옵션이 들어가서 새로 코딩을 해야 한다는 X 같은 경우가 생길수도. |