C 프로그램에서 하나의 파일을 만들고 싶습니다. 내 C 바이너리에서 오랫동안 사용하고 싶습니다. 하지만 나는 그런 식으로 파일을 만들고 내 C 프로그램이 파일을 생성하고 잠금을 해제 할 때까지 (vim이나 다른 편집기를 사용하여) 아무 것도 열거 나 읽을 수 없도록 파일을 만들고 싶습니다. 미리 감사드립니다.C 프로그램을 사용하여 Linux에서 파일 잠금
3
A
답변
2
Unix에서 필수 파일 잠금을 정의 할 수 있습니다. 그러나 필수 잠금을 유지할 수 있도록 파일 시스템을 (다시) 마운트해야합니다. 예 루트 파일을 다시 마운트하려면
(1), (루트로) 사용
echo "big secret" > locked_file
3 우리는 노기를 설정해야합니다
mount -oremount,mand/
이제
2의 우리의 비밀 파일을 만들 수 있습니다 파일에 ID 및 비활성화 그룹 실행 권한 :
chmod g+s,g-x locked_file
그리고 우리의 C 코드는 해당 파일을 잠 그려면 : 를 (코드는 읽기가 잠금이 해제 될 때까지) 지연
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
int main() {
struct flock fl;
int fd;
fl.l_type = F_WRLCK; /* read/write lock */
fl.l_whence = SEEK_SET; /* beginning of file */
fl.l_start = 0; /* offset from l_whence */
fl.l_len = 0; /* length, 0 = to EOF */
fl.l_pid = getpid(); /* PID */
fd = open("locked_file", O_RDWR | O_EXCL); /* not 100% sure if O_EXCL needed */
fcntl(fd, F_SETLKW, &fl); /* set lock */
usleep(10000000);
printf("\n release lock \n");
fl.l_type = F_UNLCK;
fcntl(fd, F_SETLK, &fl); /* unset lock */
}
더 많은 정보 http://kernel.org/doc/Documentation/filesystems/mandatory-locking.txt
0
에있을 것입니다 당신이 그것을 읽을 수있는 다른 터미널을 시도 할 수 있습니다, 파일을 고정하고, 잠시 동안 잠 계속됩니다 flock()을 사용하여 파일을 잠글 수 있습니다. 구문은
#include <sys/file.h>
#define LOCK_SH 1 /* shared lock */
#define LOCK_EX 2 /* exclusive lock */
#define LOCK_NB 4 /* don't block when locking */
#define LOCK_UN 8 /* unlock */
int flock(int fd, int operation);
첫 번째 파일은 fopen() 또는 open()을 사용하여 열 수 있습니다.
int fd = open("test.txt","r");
int lock = flock(fd, LOCK_SH); // Lock the file . . .
// . . . .
// Locked file in use
// . . . .
int release = flock(fd, LOCK_UN); // Unlock the file . . .
관련 문제
- 1. Ubuntu LInux의 C API를 사용하여 파일 잠금 및 잠금 해제
- 2. 파일 잠금 C 프로그래밍
- 3. c/C++를 사용하여 linux에서 파일 잠그기
- 4. C# 파일 잠금 방법
- 5. C++을 사용하여 Linux에서 소스 파일의 잠금/방지
- 6. C 프로그램을 통한 파일 쓰기
- 7. Linux에서 TCP를 사용하여 파일 전송
- 8. Eclipse를 사용하여 Linux에서 C++ 프로그램을 디버깅하는 방법은 무엇입니까?
- 9. Linux에서 실행중인 C++ 프로그램을 디버깅하는 방법은 무엇입니까?
- 10. Linux에서 C++로 볼륨간에 파일 이동
- 11. Python : 파일 잠금
- 12. C 프로그램을 사용하여 pendrive에서 모든 파일 삭제
- 13. C 프로그램을 사용하여 n 개의 파일 병합
- 14. C 프로그램을 사용하여 % temp %에 파일 만들기
- 15. 파일 잠금 I 중지하거나이
- 16. Linux에서 파일 액세스 모니터링
- 17. ctypes를 사용하여 linux에서 C++과 python을 연결하십시오.
- 18. 파일 잠금 및 삭제
- 19. C++ 잠금 파일 Windows 차단 모드
- 20. 은 Linux에서 C++
- 21. 파일 영구 잠금
- 22. Linux에서 C++ 코드로 파일 핸들이 남음
- 23. Spreadsheetgear는 파일 잠금 유지
- 24. PowerShell 잠금 파일
- 25. C 프로그램을 사용하는 Zip 파일
- 26. Linux에서 파일 출력 리디렉션
- 27. 파일 잠금 제거
- 28. 파일 잠금 테스트 중
- 29. Linux에서 AppleDouble 형식의 파일 만들기
- 30. Linux에서 Windows C++ 포트
아래에 주어진나요 당신 [STFW] (http://www.google.com/search?ie=UTF-8&q=linux+mandatory+locking) 그런 다음이 열려있는 파일은 무리()를 사용하여 잠겨? –
당신은 할 수 있습니다. (http://linux.die.net/man/2/fcntl), 당신은 [** SHOULD NOT **] (http://kernel.org/doc/Documentation/filesystems /mandatory-locking.txt). –