adb logcat -c打印“ioctl:不允许操作”

时间:2015-07-24 17:47:26

标签: android c adb logcat android-logcat

正在运行adb logcat -c回显ioctl: Operation not permitted

虽然我收到错误(如果你甚至可以称之为),正在清除日志

我跑了strace,但似乎无法找到对ioctl的任何电话。

最后,我看到了:

read(3, "ioctl: Operation not permitted\r\n", 4096) = 32
fstat64(1, {st_mode=S_IFREG|0664, st_size=18650, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff768e000
write(1, "ioctl: Operation not permitted\r\n", 32ioctl: Operation not permitted^M
  1. 为什么ioctl失败了? 注意 - sudo不做任何更改。
  2. ioctl被叫到哪里?我没有正确解释strace吗? 注意 - 跟踪子进程不会改变任何内容。
  3. ^M业务有什么用?在将文件从Windows复制到Linux之前,我遇到过那个人。我相信这是vim如何编码回车。但为什么会在这里呢?只在那个地方?
  4. 当我查看我的问题时,我注意到两件事。

    1. 它正在从某处读取ioctl错误。那么这是不是意味着它没有召集它?它只是从缓冲区读取并打印它(或者更准确地说,从文件读取到缓冲区并将缓冲区内容写入stdout)?也许错误是硬编码的,并且基于某些条件 - if(error) printf("%s\n", ioctlerr);
    2. 正在打印\r,其中解释了^M。但是为什么首先会有\r。移植问题?
    3. 之前我没有注意到ioctl: Operation not permitted^M是因为我将stderr stdout发送到此文件,因此^Madb logcat的结果{1}}不是strace

0 个答案:

没有答案