不确定这个问题该 po 到 Android 还是 Perl 版
最近用 Perl 写有关 adb debugging 遇到一个诡异的问题
就是执行 perl 途中, adb process 会咬住 file created from perl
后来把问题 narrow down 成以下 script:
=================================
use strict;
my $test = "out.log";
system("adb kill-server"); # (1)
open FILE, "> $test"; # (2)
system("adb shell ls"); # (3)
close FILE;
unlink $test or die "Q_Q\n";
=================================
只要执行该 script, console 一定会显示 Q_Q
(当然前提是 找的到 adb 程式 和 usb driver)
但若只要在 open file 前, 让 adb daemon 可以起来
例如在 #(1) 和 #(2) 之间呼叫 adb remount:
=================================
system("adb kill-server"); # (1)
system("adb remount"); # (4)
open FILE, "> $test"; # (2)
=================================
这样的 script 就不会印出 Q_Q 了
不知道是不是因为 adb 起来的时候动到 file descriptor
让档案以为是 adb.exe 叫起来
但相同的逻辑,用 Python 跑却没事情
麻烦版上的大神们能帮忙指点迷津
感谢~