我在一个文件中有一堆SQL,它创建了表等等。问题是当我尝试执行.read命令时,它只是返回“can 't open xxx”。我已经将权限设置为每个人都读/写,但这没有帮助。我可以从命令行cat文件,并看到它的罚款。在Mac OS 10.6.3下运行。有人知道吗?谢谢你,谢谢
n53p2ov01#
下面是shell.c中的源代码,其中sqlite3实用程序执行.read并尝试读取.sql文件:
.read
if( c=='r' && strncmp(azArg[0], "read", n)==0 && nArg==2 ){ FILE *alt = fopen(azArg[1], "rb"); if( alt==0 ){ fprintf(stderr,"can't open \"%s\"\n", azArg[1]); }else{ process_input(p, alt); fclose(alt); } }else
您可以看到,只有当对fopen的调用失败时,该实用程序才会打印“can't open xxx”。遗憾的是他们没有为你打印errno,但是这些信息应该真的可以帮助你缩小问题的范围,因为它不是特定于sqlite的。您可能指定了错误的路径(尝试引用它),您没有权限,或者文件确实不存在(这意味着您使用cat和.read的方式有所不同,比如当前目录不同)。
cat
ao218c7q2#
小心;到最后不喜欢读;'s.
2条答案
按热度按时间n53p2ov01#
下面是shell.c中的源代码,其中sqlite3实用程序执行
.read
并尝试读取.sql文件:您可以看到,只有当对fopen的调用失败时,该实用程序才会打印“can't open xxx”。遗憾的是他们没有为你打印errno,但是这些信息应该真的可以帮助你缩小问题的范围,因为它不是特定于sqlite的。
您可能指定了错误的路径(尝试引用它),您没有权限,或者文件确实不存在(这意味着您使用
cat
和.read
的方式有所不同,比如当前目录不同)。ao218c7q2#
小心;到最后不喜欢读;'s.