2016-09-08 45 views
3

私はMySQLデータベースに接続しようとする短いプログラムを書いています。C言語を使用したEclipseの終了値 - それはどういう意味ですか?

#include <stdio.h> 
#include <stdlib.h> 
#include <mysql.h> 

int main() { 
    MYSQL *conn; 
    char *server = "localhost"; 
    char *user = "root"; 
    char *password = ""; 
    char *database = "database"; 
    int port = 3306; 
    conn = mysql_init(NULL); 
    mysql_real_connect(conn, server,user,password,database, port, NULL, 0); 

    return 0; 
} 

それは罰金構築しますが、私はそれを実行すると、コンソールが

<terminated> (exit value: -1,073,741,515) 

を読み、私はそれが良いとは思わないが、私もそれが何を意味するのか見当がつかない。誰かがこれを解読するのを助けることができますか?

+1

実行ファイルをコマンドシェルで実行するとどうなりますか? –

+1

[このコメント](http://stackoverflow.com/questions/30550496/eclipse-c-terminated-exit-value-1073741515#comment49181071_30550496) –

+0

この設定で「hello world」プログラムを実行できますか? –

答えて

0

このプログラムは、freshmeat_linux/Linux]でfreshmeat_mysql/MySQL] 5.7のインストールに対して私の仕事をしてくれました。

#include <stdio.h> 
#include <stdlib.h> 
#include <mysql/mysql.h> 
int main() { 
    MYSQL *conn; 
    MYSQL_RES *res; 
    MYSQL_ROW row; 
    char *server = "localhost"; 
    char *user = "root"; 
    char *password = "<passwrd>"; /* set me first */ 
    char *database = "mysql"; 
    conn = mysql_init(NULL); 
    /* Connect to database */ 
    if (!mysql_real_connect(conn, server, 
          user, password, database, 0, NULL, 0)) { 
     fprintf(stderr, "%s\n", mysql_error(conn)); 
     exit(1); 
    } 

    /* send SQL query */ 
    if (mysql_query(conn, "show tables")) { 
     fprintf(stderr, "%s\n", mysql_error(conn)); 
     exit(1); 
    } 
    res = mysql_use_result(conn); 

    /* output table name */ 
    printf("MySQL Tables in mysql database:\n"); 
    while ((row = mysql_fetch_row(res)) != NULL) 
     printf("%s \n", row[0]); 

    /* close connection */ 
    mysql_free_result(res); 
    mysql_close(conn); 
} 

テスト

./a.out 
MySQL Tables in mysql database: 
columns_priv 
db 
engine_cost 
event 
func 
general_log 
gtid_executed 
help_category 
help_keyword 
help_relation 
help_topic 
innodb_index_stats 
innodb_table_stats 
ndb_binlog_index 
plugin 
proc 
procs_priv 
proxies_priv 
server_cost 
servers 
slave_master_info 
slave_relay_log_info 
slave_worker_info 
slow_log 
tables_priv 
time_zone 
time_zone_leap_second 
time_zone_name 
time_zone_transition 
time_zone_transition_type 
user 

あなたのMySQLが接続を実行して受け入れていることを確認し、プログラムが正常に終了するようにしてください。 mysql.h(私は上記のようにコンパイルしたときにgcc main.c -lmysqlclientとしました)をリンクするためにコマンドラインを使用する方が簡単かもしれません。

+1

この例を実行していただきありがとうございます。私はWindowsを使用しています。私はEclipseでCを使ってMySQLに接続しようとすると何もできませんでした。私は結局Pelles Cに切り替えました。最初は同じような問題にぶち当たっていましたが、libmysql.dllを実行可能ファイルと同じフォルダ。私がこれをしたとき、私はついに成功しました。 Eclipseを使ってプログラムをクラッシュしました。私はそれが動的dllライブラリと何をするべきかを教えたドキュメンテーションを読んでいませんでした。少なくとも私はこの時点で何か作業していますが、私はそれがEclipseだったらいいと思います。 – sax

+0

@sax Cをプログラムするなら、Clionを試しましたか?クリオンはいいIDEだと思う。 –

関連する問題