저는 리눅스 커널 모듈을 만들고 있는데, proc 파일을 동적으로 생성하고 합리적인 방법으로 사용하는 방법이 있는지 궁금합니다.proc 파일을 동적으로 생성 하시겠습니까?
list_head
으로 구조체를 생성하는 데 아무런 문제가 없지만 여기서 궁극적 인 문제는 동일한 변수가 다른 동일한 변수로 실행되도록하려는 것입니다. 즉, 각 파일에 대해 커널 메모리의 다른 버퍼에 쓰기를 끝내는 write_proc
을 갖고 싶습니다 (그리고 그 파일에서 읽는 read_proc
).
나는이 어려움에 봉착하는 이유는 PROC 파일에서 쓰기 읽기 기능 protoypes가 /이 동작을 허용하지 않는 것이다 : 나는 정적의 무리를 만들 수 있습니다, 지금
int read_proc(char *buf, char **start, off_t offset, int count,
int *eof, void *data) {
int write_proc(struct file *file, const char *buf,
unsigned long count, void *data) {
을 함수를 사용하고 충분하게 할당했는지 확인하십시오. 그러나 더 세련된 솔루션이 있는지 궁금합니다.
$ echo "file1" > /proc/mydir/create
$ echo "file2" > /proc/mydir/create
$ ls /proc/mydir
create file1 file2
$ echo "1" > /proc/mydir/file1
$ echo "5" > /proc/mydir/file2
$ cat /proc/mydir/file*
1
5
가 난 그냥 떨어져 간 적이 : 여기
(나는 심지어 시작 아무 생각이 없기 때문에 내가 코드 MWE이없는) 나는 그것이 유저 랜드에서보고 싶은 방법의 예 깊은 끝? 내가 아주 일반적인 호환성 (2.6.33+)을 찾고 있어요는
내가 제공 한 링크를 통해/proc 구현을 살펴 보는 것이 좋습니다. 매우 간단하고 유익합니다. 실제로 불완전한 문서 나 오래된 블로그 게시물에서 정보를 찾으려고 시도하는 것보다이를 읽고 읽는 것이 더 쉽습니다. – Shahbaz
답변을 수락하기가 너무 늦어서 죄송합니다. 최근에이 문제를 해결할 시간이별로 없었습니다. 웬일인지, 그것이 나를 얼굴에 응시하고 있었지만 'data'물건은 완전히 나의 마음을 미끄러 뜨렸다! 모든 세부 사항 및 링크에 다시 한번 감사드립니다! – zje