質問編集履歴

2 C言語で排他する方法を追記した

toroleaman

toroleaman score 93

2018/04/30 15:09  投稿

C言語とjavaで同じログファイルにファイル出力する際に注意するべき点
javaの複数のプロセスからログ出力する際に排他制御を行うため、
Logback + SLF4Jの組み合わせでログ出力させることにしています。
C言語からもこのログファイルにログ出力する必要があり、
Logback + SLF4Jで排他制御している仕組みを使って
C言語とjavaで排他制御して、ログ出力を行いたいと
思っています。
Logback + SLF4Jがどのような仕組みを使って排他制御を行っているか
教えていただけないでしょうか。
FileChannelというクラスを使っていますが、これらをC言語で排他することが出来ないでしょうか。
C言語とjavaで排他制御によりログ出力するアイデアがないでしょうか。
C言語で排他ロックするのは、以下のような感じでしょうか。
FILE * fp;
fp=fopen("out.log","a"));
flock(fileno(fp),LOCK_EX);
lseek(fileno(fp),0,SEEK_SET);
flock(fileno(fp),LOCK_UN);//ロックの解除
fclose(fp);
FileChannelが同じような排他方法で排他ロックしていれば、C言語とJavaで排他ロックができるのですが。。
  • Java

    15772 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • C

    4503 questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

  • Logback

    4 questions

1 排他の仕組みについてFileChannelであることを追記した。

toroleaman

toroleaman score 93

2018/04/30 14:46  投稿

C言語とjavaで同じログファイルにファイル出力する際に注意するべき点
javaの複数のプロセスからログ出力する際に排他制御を行うため、
Logback + SLF4Jの組み合わせでログ出力させることにしています。
C言語からもこのログファイルにログ出力する必要があり、
Logback + SLF4Jで排他制御している仕組みを使って
C言語とjavaで排他制御して、ログ出力を行いたいと
思っています。
Logback + SLF4Jがどのような仕組みを使って排他制御を行っているか
教えていただけないでしょうか。
FileChannelというクラスを使っていますが、これらをC言語で排他することが出来ないでしょうか。  
C言語とjavaで排他制御によりログ出力するアイデアがないでしょうか。
  • Java

    15772 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • C

    4503 questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

  • Logback

    4 questions

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る