[過去ログ] スレ立てるまでもない質問はここで 164匹目 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
107: デフォルトの名無しさん [sage] 2023/05/07(日) 13:42:39.29 ID:O0op5Uvp(1/2) AAS
なんでソース読まないのかな
sqlite/src/shell.c.in の int SQLITE_CDECL main(int argc, char **argv){がエントリーポイントだよ
この中にCtrl+Cをハンドルするif( !SetConsoleCtrlHandler(ConsoleCtrlHandler, TRUE) ){という行もある
122(2): デフォルトの名無しさん [sage] 2023/05/07(日) 15:38:56.81 ID:O0op5Uvp(2/2) AAS
>>9393(5): デフォルトの名無しさん [sage] 2023/05/07(日) 01:25:03.86 ID:6RURAAgh(1) AAS
これ自体はおそらく正しい
>begin;
でトランザクションを開始しておけば
>drop table AAA
でctrl-cして終了してもテーブルは消えない
ただ、今問題なのはなぜセミコロンを打ってない状態でctrl-cしたのにsql文が実行されてしまうのかということだけど
>ただ、今問題なのはなぜセミコロンを打ってない状態でctrl-cしたのにsql文が実行されてしまうのかということだけど
ソース読んだらセミコロンはEOF相当の副作用完了点ぐらいの意味しかないっぽい
それとone_input_lineに以下のコメントがある
/* ^C trap creates a false EOF, so let "interrupt" thread catch up.(^C トラップは偽の EOF を作成するので、「割り込み」スレッドに追いつかせる。) */
すなわちCtrl+Cの副作用で標準入力にEOFが生成されるなら、process_inputのメインループの入力待ちから制御が戻ってコマンドが実行される
言い換えればブレーキを踏んだ時点で入力した内容が正しければ、それを実行してから停止するがsqlite3.exeの仕様
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.037s