루프 내에서 copy_to_user()
을 사용해 보았습니다.커널 프로그램에서 copy_to_user()를 사용하는 방법은 무엇입니까?
for_each_process(p) {
copy_to_user(buf, "data of p", len);
}
하지만 출력은 다릅니다. 사용자 공간에 마지막 행의 데이터 만 있습니다 (예 :
#Data expected to copy to user space
123 1234 12 21
1243 124 423 12
1234 422 42 423
#Current Output:
1234 422 42 423
커널 공간에서 각 줄을 사용자 공간에 복사하는 방법은 무엇입니까?
코드를 표시하십시오. 문제가 무엇인지 생각하게하는 대신 (완전히 잘못된 것일 수 있습니다) 우리에게 코드를 보여주고 우리 자신의 결론에 도달하게하십시오. 모든 수단을 통해 자신의 평가를 실시하고 검사하고 검증 할 데이터 (즉, 코드)도 제공하십시오. – kaylum
"* 나는 copy_to_user()'* '에 전달 된 데이터를 생각했다. 아니요, 리눅스의'copy_to_user (src, dst, len)'는 여러분이 가리키는 (사용자 프로세스의 주소 공간에있는)'dst' 위치에 데이터를 복사합니다. 같은 포인터로 여러 번 호출하면 해당 위치의 기존 데이터를 덮어 씁니다. – dhke