내 응용 프로그램에서는 elf 파일과 실행 파일을 반복적으로 찾으려면 전체 디스크 검사가 필요합니다. 리눅스 C에서 문제를 해결하는 방법?c를 사용하여 Linux에서 전체 디스크를 검사하는 방법?
답변
- 파일 시스템의 루트에서 시작하십시오.
- opendir() readdir() closedir()을 사용하여 디렉토리를 검색하십시오. 각 항목에 대해
- : -> d_type
- 는
- 은 (구조체에 dirent *)를 통해 하위 디렉토리 항목을 감지, 자신의 파일 * "마법"으로 ELF 파일을 검색.
- 하위 디렉토리가 발견되면 위의 2로 재귀하십시오.
* ELF 파일 마법 (파일 0 오프셋) :
7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00
비교를 위해 표시 한 ELF 문자열을 생성하는 개체 또는 실행 파일 중 하나에서'file'을 실행 하시겠습니까 64 비트 Intel (x86_64) ELF에서 생성 된 문자열을 사용합니다. 처음 4 바이트는 매직 넘버입니다; 첫 번째 16 비트의 나머지 12 바이트는 32 비트와 64 비트, LSB와 MSB (엔디 언), 버전, 타입 등을 인코딩합니다. 32 비트 (01) MSB (빅 엔디안) 버전 1 (01), SYSV (00). 다른 정보는 헤더의 뒷 부분에 있습니다. –
당신이 표준 find
프로그램을 사용할 수없는 경우, 다음 통과하는 POSIX nftw()
기능 (또는 아마도 ftw()
기능)를 사용 계층 구조를 작성하고 적절한 방문자 기능을 작성하십시오. ELF 파일의
첫 번째 4 바이트는 다음과 같습니다 무엇 다음 것은 플랫폼 및 버전 별이
0x7F 0x45 0x4C 0x46
DEL E L F
입니다.
예, file
리포트 :
ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
및 헥스의 처음 16 바이트의 출력은 :
는0x0000: 7F 45 4C 46 02 01 01 00 00 00 00 00 00 00 00 00 .ELF............
이것은 후에 그의 answer에 Mahonri Moriancumer으로 나타내는 출력 약간 다르다 처음 4 바이트.
감사합니다. ftw()가 매우 적합합니다. – ttworkhard
- 1. C를 사용하여 Linux에서 CD 드라이브를 꺼내는 방법?
- 2. Linux에서 C를 사용하는 제로 RAM
- 3. C를 사용하여 Linux에서 CPU 수 얻기
- 4. Linux에서 objective-c를 사용하여 예외 catch
- 5. C를 사용하여 Linux에서 소리를 재생하려면 어떻게해야합니까?
- 6. Qt를 사용하여 Windows 및 Linux에서 Ctrl + C를 잡는 방법
- 7. C를 사용하여 Linux에서 파일의 vfat 속성을 읽는 방법
- 8. GNU/Linux에서 디스크를 사용하는 프로세스 또는 커널 활동을 기록하려면 어떻게합니까?
- 9. Xalan-C를 사용하여 XMLSchema의 유효성을 검사하는 방법은 무엇입니까?
- 10. C를 사용하여 Linux에서 열린 소켓 목록을 얻는 방법은 무엇입니까?
- 11. Linux에서 C를 사용하여 별도의 터미널에 쓰는 방법은 무엇입니까?
- 12. C를 사용하여 프린터를 변경하는 방법 #
- 13. C를 사용하여 차트를 만드는 방법 #
- 14. C를 사용하여 파일을 검색하는 방법
- 15. c를 사용하여 winsock2에서 이미지를 보내는 방법
- 16. 리플렉션을 사용하여 메소드를 검사하는 방법
- 17. Objective-C를 사용하여 자바 스크립트를 주입하는 방법
- 18. C를 사용하여 계산기 만들기
- 19. 부팅 가능한 디스크를 만드는 방법
- 20. C를 사용하여 이미지 표시
- 21. c를 사용하여 linux shell에서 새 프롬프트를 작성하십시오.
- 22. 디스크를 소유하고있는 Linux 드라이버를 확인하십시오.
- 23. C를 사용하여 COM 개체와 상호 작용하는 방법?
- 24. 리눅스에서 C를 사용하여 시간대를 지정하는 방법
- 25. C를 사용하여 외부 응용 프로그램을 닫는 방법 #
- 26. GNUstep을 사용하여 windows에서 objective c를 컴파일하는 방법
- 27. C를 사용하여 PC를 자동으로 시작하는 방법
- 28. C를 사용하여 여러 사각형을 그리는 방법 #
- 29. 파이썬 또는 c를 사용하여 웹캠에 액세스하는 방법
- 30. C를 사용하여 큰 파일 크기를 얻는 방법
여기를보십시오 http://manpages.courier-mta.org/htmlman3/scandir.3.html –