리눅스 커널 2.4 (숙제)에서 FTP와 비슷한 프로토콜을 구현 중이며, 다른 어떤 파일을 열려고 시도하는 파일을 열어 본 경우 쓰레드가 실패 할 때까지 기다렸다가 실제로 시도해 보았습니다.쓰레드가 같은 파일에 쓰지 못하도록하기
어떻게 이런 일이 발생하지 않도록 할 수 있습니까?
추신 : 나는 파일을 열 때 open()을 사용하고 있습니다.
PS2 : 기존 파일에 액세스 할 수 있어야합니다. 나는 그것들이 동시에 쓰여지는 것을 막고 싶다.
대기. 리눅스 커널에서 이것을하고 있습니까? 사용자 모드 프로세스 (즉 커널 안)가 아니라면 동일한 프로세스 내에서 다른 스레드를 사용하고 있습니까 (즉, fork()를 사용하고 있습니까?). –
나는 이것을 사용자 모드에서하고있다. 나는 커널 정보가 실제로 중요하지 않다고 생각하지만 커널간에 파일을 여는 방법과 관련하여 구현시 미묘한 버그/차이점이 있는지 확인하려고했습니다. – EpsilonVector
스레드 (pthread 또는 친족)와 프로세스 (즉, 포크)는 어떻습니까? 나는 당신이 대답을 받아 들였다는 것을 알고 있습니다 ... 여전히 미래의 독자들을 도울 것입니다, 그렇습니다. –