fs/block-dev.c는 블록 장치에 적용 할 수있는 파일 작업 및 주소 공간 작업을 정의합니다.
static const struct address_space_operations def_blk_aops = {
.readpage = blkdev_readpage,
.writepage = blkdev_writepage,
.write_begin = blkdev_write_begin,
.write_end = blkdev_write_end,
.writepages = generic_writepages,
.releasepage = blkdev_releasepage,
.direct_IO = blkdev_direct_IO,
.is_dirty_writeback = buffer_check_dirty_writeback,
};
const struct file_operations def_blk_fops = {
.open = blkdev_open,
.release = blkdev_close,
.llseek = block_llseek,
.read = do_sync_read,
.write = do_sync_write,
.aio_read = blkdev_aio_read,
.aio_write = blkdev_aio_write,
.mmap = generic_file_mmap,
.fsync = blkdev_fsync,
.unlocked_ioctl = block_ioctl,
#ifdef CONFIG_COMPAT
.compat_ioctl = compat_blkdev_ioctl,
#endif
.splice_read = generic_file_splice_read,
.splice_write = generic_file_splice_write,
};
시스템이 'strace' 유틸리티로 명령 사용을 호출하는 것을 볼 수 있습니다. 예 : 'strace 고양이 이미지 .iso>/dev/sda'. 필요한 종류의 정보입니까? – lgeorget
@lgeorget jftr strace가 호출되기 전에 리디렉션이 일어나기 때문에 모든 정보가 표시되지 않으므로 strace -f sh -c 'cat image.iso>/dev/sda''와 같은 것이어야합니다 –
ups 예, 고쳐 주셔서 감사합니다. – lgeorget