【发布时间】:2012-12-06 04:04:22
【问题描述】:
执行以下命令:
mysql -u root -p < load_data.sql > output.tab
-p 标志告诉 mysql 客户端 - 一个 C 程序 - 为用户提供输入密码的交互式提示。
AFAIK,这样的输入通常通过向stderr 写入提示然后阻塞像gets 这样的调用来处理,它从标准输入读取一行。
但是 shell 已经打开了 load_data.sql 文件并将 mysql 客户端的 stdin 设置为其文件描述符 - 所以不应该调用 gets 只是从文件中获取第一行吗?
我最初的想法是程序会在读取一行之前搜索到结尾 - 但你不能在管道上进行这样的搜索!
那么这是如何工作的呢?有什么魔法吗?
【问题讨论】: