JP2013105349A - 動的リンクライブラリの更新、実行方法 - Google Patents
動的リンクライブラリの更新、実行方法 Download PDFInfo
- Publication number
- JP2013105349A JP2013105349A JP2011249233A JP2011249233A JP2013105349A JP 2013105349 A JP2013105349 A JP 2013105349A JP 2011249233 A JP2011249233 A JP 2011249233A JP 2011249233 A JP2011249233 A JP 2011249233A JP 2013105349 A JP2013105349 A JP 2013105349A
- Authority
- JP
- Japan
- Prior art keywords
- dynamic link
- link library
- library
- execution
- update
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
【課題】メインプログラムの動作を継続させたまま、更新された動的リンクライブラリをメインプログラムが実行可能な、動的リンクライブラリの更新、実行方法を提供する。
【解決手段】動的リンクライブラリの実行ファイル101の作成時に、動的リンクライブラリの更新状態をライブラリ更新状態管理テーブル102に格納する工程と、ライブラリ更新状態管理テーブル102に格納されている動的リンクライブラリの更新状態と実行中ライブラリ状態管理テーブル105に格納されている動的リンクライブラリの更新状態を比較し、動的リンクライブラリの更新の有無を判断する工程と、動的リンクライブラリが更新されている場合は、実行中ライブラリ状態管理テーブル105に格納されている動的リンクライブラリの更新状態を更新し、更新後の動的リンクライブラリの実行アドレスを算出する工程と、実行アドレスを参照して動的リンクライブラリを実行する工程を有する。
【選択図】図1
【解決手段】動的リンクライブラリの実行ファイル101の作成時に、動的リンクライブラリの更新状態をライブラリ更新状態管理テーブル102に格納する工程と、ライブラリ更新状態管理テーブル102に格納されている動的リンクライブラリの更新状態と実行中ライブラリ状態管理テーブル105に格納されている動的リンクライブラリの更新状態を比較し、動的リンクライブラリの更新の有無を判断する工程と、動的リンクライブラリが更新されている場合は、実行中ライブラリ状態管理テーブル105に格納されている動的リンクライブラリの更新状態を更新し、更新後の動的リンクライブラリの実行アドレスを算出する工程と、実行アドレスを参照して動的リンクライブラリを実行する工程を有する。
【選択図】図1
Description
本発明は、メインプログラムが動的リンクライブラリの更新を認識し、更新された動的リンクライブラリを実行する方法に関する。
動的リンクライブラリは、静的なライブラリが実行形式ファイルに合体されるかたちでリンクされるのと異なり、実行時に他のプロセス(プログラム)と共有するかたちで動的にリンクされて、使用される。動的リンクライブラリは、プロセス(プログラム)間で共通に使用されるため、使用するメモリ容量を削減できる。
特許文献1には、実行可能プログラムと動的リンクライブラリのリンク、及びそれらのロードを行う動的リンクライブラリ処理装置に関する技術が記載されている。
特許文献2には、ダイナミックリンク機能を持ったオペレーティングシステム(OS)上において、共有ライブラリを使用して、モジュール単位でソフトウエアを更新する方法が開示されている。
動的リンクライブラリを実行するメインプログラムは、リンクされている特定の動的リンクライブラリ(以下、「動的リンクライブラリA」と称する)がバージョンアップや変更等により更新された場合、動的リンクライブラリAの更新を認識する手段を持たず、加えて、更新後の動的リンクライブラリAの実行アドレスを知ることができない。従って、動的リンクライブラリAを更新した場合には、一度メインプログラムを停止させ、メインプログラムと更新後の動的リンクライブラリAとをリンクし直し、再びメインプログラムを起動させる必要がある。
このため、例えばオンラインで業務を継続させる必要がある等の理由により、メインプログラムを停止できないシステムにおいては、メインプログラムの動作を継続させた状態で(すなわち、メインプログラムを実行させた状態で)動的リンクライブラリAを更新することは困難である。
本発明は、メインプログラムの動作を継続させたまま、更新された動的リンクライブラリをメインプログラムが実行可能な、動的リンクライブラリの更新、実行方法を提供することを目的とする。
本発明による動的リンクライブラリの更新、実行方法は、次のような特徴を持つ。
メインプログラムを実行する計算機が、前記メインプログラムにリンクされている動的リンクライブラリを更新し実行する方法において、前記計算機には、記憶部と、前記メインプログラムと前記動的リンクライブラリを実行する演算処理部と、前記動的リンクライブラリの実行ファイルを作成して前記記憶部に格納する動的リンクライブラリ実行ファイル作成部と、前記動的リンクライブラリの実行ファイルの更新の有無を判断する動的リンクライブラリ実行部と、前記記憶部に格納されている前記動的リンクライブラリの実行ファイルの更新状態を格納し、前記記憶部に保存されるライブラリ更新状態管理テーブルと、前記メインプログラムにリンクされている前記動的リンクライブラリの実行ファイルの更新状態を格納し、前記記憶部に保存される実行中ライブラリ状態管理テーブルとが備えられ、以下のような工程を有する。
前記動的リンクライブラリ実行ファイル作成部が、前記動的リンクライブラリの実行ファイルを作成するときに、前記動的リンクライブラリの実行ファイルの更新状態を前記ライブラリ更新状態管理テーブルに格納する更新状態格納工程と、前記演算処理部が前記メインプログラムにリンクされている前記動的リンクライブラリを実行するときに、前記動的リンクライブラリ実行部が、前記ライブラリ更新状態管理テーブルに格納されている前記動的リンクライブラリの実行ファイルの更新状態と、前記実行中ライブラリ状態管理テーブルに格納されている前記動的リンクライブラリの実行ファイルの更新状態とを比較し、前記動的リンクライブラリの実行ファイルの更新の有無を判断する更新有無判断工程と、前記更新有無判断工程で前記動的リンクライブラリの実行ファイルが更新されていると判断した場合は、前記動的リンクライブラリ実行部が、前記実行中ライブラリ状態管理テーブルに格納されている前記動的リンクライブラリの実行ファイルの更新状態を更新するとともに、更新後の前記動的リンクライブラリの実行ファイルの実行アドレスを算出する状態更新工程と、前記演算処理部が、前記状態更新工程で算出した前記実行アドレスを参照して、前記動的リンクライブラリを実行する実行工程とを有する。
本発明による動的リンクライブラリの更新、実行方法では、メインプログラムの動作を継続させたまま、更新された動的リンクライブラリをメインプログラムが実行可能である。このため、メインプログラムの実行には影響を与えずに、動的リンクライブラリを更新することができる。
以下の説明では、「動的リンクライブラリの実行ファイル」のことを単に「動的リンクライブラリ」とも呼び、「メインプログラムの実行ファイル」のことを単に「メインプログラム」とも呼ぶ。
本発明者は、更新する動的リンクライブラリの実行ファイルを作成するときに、この動的リンクライブラリの更新状態をテーブルに記録することで、メインプログラムが動的リンクライブラリの更新状態を認識できることに着目した。本発明による動的リンクライブラリの更新、実行方法では、動的リンクライブラリの更新状態を管理し、メインプログラムの実行時に動的リンクライブラリの更新状態をメインプログラムに認識させる。動的リンクライブラリが更新された場合は、更新された動的リンクライブラリの実行アドレスを算出し、算出した実行アドレスをメインプログラムに参照させて動的リンクライブラリを実行させる。
このような方法により、メインプログラムは、動作を継続中でも動的リンクライブラリの更新の影響を受けずに、更新された動的リンクライブラリを実行することができる。
以下、本発明を実施する形態の例について、図1〜図5を用いて説明する。
図5は、本発明による動的リンクライブラリの更新、実行方法を実行する計算機の構成を示す概略図である。本発明による動的リンクライブラリの更新、実行方法は、計算機501により実行される。計算機501は、動的リンクライブラリ実行ファイル作成部502、メインプログラム実行ファイル作成部503、動的リンクライブラリ実行部504、記憶部505、及び演算処理部506を備える。
動的リンクライブラリ実行ファイル作成部502は、動的リンクライブラリのオブジェクトファイルから動的リンクライブラリの実行ファイルを作成する。
メインプログラム実行ファイル作成部503は、メインプログラムのオブジェクトファイルからメインプログラムの実行ファイルを作成する。
動的リンクライブラリ実行部504は、動的リンクライブラリの更新の有無を判断し、動的リンクライブラリが更新されている場合は、更新された動的リンクライブラリの実行アドレスを算出する。
記憶部505は、メモリなどの記憶装置から構成され、各種のファイルやデータ(後述するライブラリ更新状態管理テーブルと実行中ライブラリ状態管理テーブルを含む)を保存する。メインプログラムや動的リンクライブラリも、記憶部505に保存される。
演算処理部506は、CPUから構成され、計算機501の処理を司り、メインプログラムと、メインプログラムにリンクされている動的リンクライブラリを実行する。また、動的リンクライブラリ実行ファイル作成部502、メインプログラム実行ファイル作成部503、及び動的リンクライブラリ実行部504を動作させ、記憶部505に対してファイルやデータを入出力する。
記憶部505に保存されているメインプログラムは、演算処理部506により実行される。このとき、記憶部505に保存されておりメインプログラムにリンクされている動的リンクライブラリは、メインプログラムから呼び出されて演算処理部506により実行される。以下の実施例では、メインプログラムが、メインプログラムにリンクされている特定の動的リンクライブラリ(以下、「動的リンクライブラリA」と呼ぶ)を実行するときに、動的リンクライブラリAの更新状態を認識し、更新されている場合は更新された動的リンクライブラリAを実行する例を述べる。
図1を用いて、動的リンクライブラリ実行ファイル作成部502が行う動的リンクライブラリAの実行ファイルの作成の流れと、メインプログラム実行ファイル作成部503が行うメインプログラムの実行ファイルの作成の流れを説明する。メインプログラムの実行ファイル103(メインプログラム)は、動的リンクライブラリAの実行ファイル101(動的リンクライブラリA)を実行する。
動的リンクライブラリAの実行ファイル101は、動的リンクライブラリ実行ファイル作成部502により、動的リンクライブラリAのオブジェクトファイルから作成する。動的リンクライブラリAのオブジェクトファイルは、動的リンクライブラリAのソースから作成する。動的リンクライブラリAのオブジェクトファイルは、計算機501で作成してもよいし、他の計算機で作成して記憶部505に保存しておいてもよい。
動的リンクライブラリAのオブジェクトファイルから実行ファイル101を作成するときに、動的リンクライブラリ実行ファイル作成部502は、動的リンクライブラリAの更新状態をライブラリ更新状態管理テーブル102に格納する。ライブラリ更新状態管理テーブル102は、記憶部505に保存されるテーブルであり、例えば共有メモリ空間に作成することができる。ライブラリ更新状態管理テーブル102は、初めて動的リンクライブラリAの実行ファイル101を作成するときに作成され、以後、動的リンクライブラリAの実行ファイル101の作成時に更新される。
図3は、ライブラリ更新状態管理テーブル102のデータ構造を示す図である。ライブラリ更新状態管理テーブル102は、図3に示すように、動的リンクライブラリA、動的リンクライブラリB等の動的リンクライブラリについての情報をそれぞれ格納する情報部を備える。各動的リンクライブラリの情報部は、動的リンクライブラリの名称303エリアと管理番号302エリアとを有する。動的リンクライブラリの名称303エリアは、動的リンクライブラリの名称303を格納し、管理番号302エリアは、動的リンクライブラリの更新状態を格納する。
動的リンクライブラリの更新状態は、管理番号302により表される。管理番号302には、任意の数値を用いることができる。本実施例では、管理番号302に整数を用い、初期値を0とする。
動的リンクライブラリAの情報部の管理番号302エリアは、動的リンクライブラリAの実行ファイル101を作成するときに、動的リンクライブラリAの更新状態を格納する。すなわち、管理番号302エリアは、動的リンクライブラリAの実行ファイル101の作成時に更新される。
更新状態は、例えば、カウンタとして管理することができる。この場合、動的リンクライブラリAの実行ファイル101を作成するたびに、管理番号302をカウントアップさせる(管理番号302に1を加える)。但し、初めて動的リンクライブラリAの実行ファイル101を作成するときには、管理番号302の初期値を0とするために、カウントアップさせない。
図1に戻って説明を続ける。
メインプログラムの実行ファイル103は、メインプログラム実行ファイル作成部503により、メインプログラムのオブジェクトファイルから作成する。メインプログラムのオブジェクトファイルは、メインプログラムのソースから作成する。メインプログラムのオブジェクトファイルは、計算機501で作成してもよいし、他の計算機で作成して記憶部505に保存しておいてもよい。
メインプログラムのオブジェクトファイルから実行ファイル103を作成するときに、メインプログラム実行ファイル作成部503は、実行中ライブラリ状態管理テーブル105を作成し、管理番号の初期値を実行中ライブラリ状態管理テーブル105に格納する。実行中ライブラリ状態管理テーブル105は、記憶部505に保存されるテーブルであり、例えば共有メモリ空間に作成することができる。
図4は、実行中ライブラリ状態管理テーブル105のデータ構造を示す図である。実行中ライブラリ状態管理テーブル105は、図4に示すように、動的リンクライブラリA、動的リンクライブラリB等の動的リンクライブラリについての情報をそれぞれ格納する情報部を備える。各動的リンクライブラリの情報部は、動的リンクライブラリの名称403エリアと管理番号402エリアとを有する。動的リンクライブラリの名称403エリアは、動的リンクライブラリの名称403を格納し、管理番号402エリアは、管理番号402を格納する。実行中ライブラリ状態管理テーブル105は、管理番号402により、現在実行中の動的リンクライブラリの状態を管理する。
管理番号402には、任意の数値を用いることができる。但し、管理番号402の初期値は、ライブラリ更新状態管理テーブル102の管理番号302の初期値と等しくする必要がある。本実施例では、管理番号402に整数を用い、初期値を0とする。
図1に戻って説明を続ける。
動的リンクライブラリ実行機構104は、ライブラリ更新状態管理テーブル102と実行中ライブラリ状態管理テーブル105とにリンクされており、ライブラリ更新状態管理テーブル102と実行中ライブラリ状態管理テーブル105とを参照することができる。動的リンクライブラリ実行機構104は、メインプログラムが動的リンクライブラリAを呼び出して実行するときに、動的リンクライブラリ実行部504により実行される。
図2を用いて、動的リンクライブラリ実行機構104の処理について説明する。図2は、動的リンクライブラリ実行機構104の動作を示すフローチャートである。
動的リンクライブラリ実行機構104は、処理の開始時に、ライブラリ更新状態管理テーブル102の管理番号302と実行中ライブラリ状態管理テーブル105の管理番号402とを比較し、動的リンクライブラリAの更新の有無を判断する(S201)。
ライブラリ更新状態管理テーブル102の管理番号302と実行中ライブラリ状態管理テーブル105の管理番号402とが等しい場合は、動的リンクライブラリAが更新されていないと判断する(S202)。
そして、演算処理部506により、メインプログラムは動的リンクライブラリAを実行する(S203)。
ライブラリ更新状態管理テーブル102の管理番号302と実行中ライブラリ状態管理テーブル105の管理番号402とが等しくない場合は、動的リンクライブラリAが更新されていると判断する(S202)。
そして、実行中ライブラリ状態管理テーブル105の管理番号402を、ライブラリ更新状態管理テーブル102の管理番号302と等しくなるように更新する(S204)。
動的リンクライブラリAが更新されていると判断した場合は、さらに、更新後の動的リンクライブラリAの実行アドレスを算出する(S205)。実行アドレスを算出するには、計算機のオペレーティングシステム(OS)が持つ、アドレス解決のためのインターフェースを利用することができる。
更新後の動的リンクライブラリAの実行アドレスを算出したら、演算処理部506により、メインプログラムは、算出した実行アドレスを参照して、更新後の動的リンクライブラリAを実行する(S206)。
S205で用いる、更新後の動的リンクライブラリAの実行アドレスを算出する方法の一例を、計算機のOSがLinux(登録商標)の場合について説明する。Linux標準のインターフェースであるdlclose()で更新前の動的リンクライブラリAをクローズした後に、ライブラリ更新状態管理テーブル102の動的リンクライブラリの名称303を参照し、dlopen()とdlsym()を使用する。このようにして、更新後の動的リンクライブラリAの実行アドレスを算出することができる。
以上の説明では、動的リンクライブラリAの更新状態を、ライブラリ更新状態管理テーブル102の管理番号302と実行中ライブラリ状態管理テーブル105の管理番号402とを用いて管理した。動的リンクライブラリAの更新状態は、管理番号を用いずに、例えば動的リンクライブラリAの実行ファイルのタイムスタンプを用いて管理することができる。タイムスタンプとは、電子データの作成や更新が行われた日時を示す情報のことであり、電子データに属性として記録される。タイムスタンプは、計算機のOSが持つインターフェースを利用して読み取ることができる。
以下、タイムスタンプを用いて動的リンクライブラリAの更新状態を管理する場合の処理を説明する。以下の説明では、管理番号を用いた場合の処理と異なる処理を中心に説明する。
初めて動的リンクライブラリAの実行ファイル101を作成するときに、ライブラリ更新状態管理テーブル102を作成し、管理番号302の初期値を設定する(例えば「0」とする)。動的リンクライブラリAの実行ファイル101の2回目以後の作成時には(すなわち、動的リンクライブラリAの更新時には)、管理番号302の値を、動的リンクライブラリAの実行ファイル101のタイムスタンプの値とする。このようにして、ライブラリ更新状態管理テーブル102に格納される動的リンクライブラリAの実行ファイル101のタイムスタンプを更新することができる。
図2のS202において、ライブラリ更新状態管理テーブル102の管理番号302と実行中ライブラリ状態管理テーブル105の管理番号402とが等しくない場合は、動的リンクライブラリAが更新されていると判断し、S204において、実行中ライブラリ状態管理テーブル105の管理番号402を、ライブラリ更新状態管理テーブル102の管理番号302と等しくなるように更新する。この処理により、実行中ライブラリ状態管理テーブル105の管理番号402にも、動的リンクライブラリAの実行ファイルのタイムスタンプの値が格納される。
タイムスタンプを用いて動的リンクライブラリAの更新状態を管理する場合には、ライブラリ更新状態管理テーブル102を使用しなくもよい。この場合は、初めて動的リンクライブラリAの実行ファイル101を作成するときに、ライブラリ更新状態管理テーブル102を作成しない。従って、動的リンクライブラリAの実行ファイル101を2回目以後に作成するときには(すなわち、動的リンクライブラリAを更新するときには)、実行ファイル101のタイムスタンプを管理しなくてもよい(但し、実行ファイル101のタイムスタンプは、動的リンクライブラリAの更新により変化する)。
一方、実行ファイル103を作成するときには、記憶部505に保存されている動的リンクライブラリAの実行ファイルのタイムスタンプを読み取るとともに、実行中ライブラリ状態管理テーブル105を作成して、管理番号402に読み取ったタイムスタンプの値を設定する。
そして、図2のS201(動的リンクライブラリAの更新の有無の判断)において、記憶部505に保存されている動的リンクライブラリAの実行ファイルのタイムスタンプを読み取り、読み取ったタイムスタンプの値と、実行中ライブラリ状態管理テーブル105の管理番号402の値とを比較する。
S202において、読み取ったタイムスタンプの値と実行中ライブラリ状態管理テーブル105の管理番号402の値とが等しくない場合は、動的リンクライブラリAが更新されていると判断する。
そして、S204において、実行中ライブラリ状態管理テーブル105の管理番号402の値を、読み取ったタイムスタンプの値と等しくなるように更新する。
以上のようにして、タイムスタンプを用いて動的リンクライブラリAの更新状態を管理することができる。
101…動的リンクライブラリAの実行ファイル、102…ライブラリ更新状態管理テーブル、103…メインプログラムの実行ファイル、104…動的リンクライブラリ実行機構、105…実行中ライブラリ状態管理テーブル、302…管理番号、303…名称、402…管理番号、403…名称、501…計算機、502…動的リンクライブラリ実行ファイル作成部、503…メインプログラム実行ファイル作成部、504…動的リンクライブラリ実行部、505…記憶部、506…演算処理部。
Claims (4)
- メインプログラムを実行する計算機が、前記メインプログラムにリンクされている動的リンクライブラリを更新し実行する方法において、
前記計算機には、記憶部と、前記メインプログラムと前記動的リンクライブラリを実行する演算処理部と、前記動的リンクライブラリの実行ファイルを作成して前記記憶部に格納する動的リンクライブラリ実行ファイル作成部と、前記動的リンクライブラリの実行ファイルの更新の有無を判断する動的リンクライブラリ実行部と、前記記憶部に格納されている前記動的リンクライブラリの実行ファイルの更新状態を格納し、前記記憶部に保存されるライブラリ更新状態管理テーブルと、前記メインプログラムにリンクされている前記動的リンクライブラリの実行ファイルの更新状態を格納し、前記記憶部に保存される実行中ライブラリ状態管理テーブルと、が備えられ、
前記動的リンクライブラリ実行ファイル作成部が、前記動的リンクライブラリの実行ファイルを作成するときに、前記動的リンクライブラリの実行ファイルの更新状態を前記ライブラリ更新状態管理テーブルに格納する更新状態格納工程と、
前記演算処理部が前記メインプログラムにリンクされている前記動的リンクライブラリを実行するときに、前記動的リンクライブラリ実行部が、前記ライブラリ更新状態管理テーブルに格納されている前記動的リンクライブラリの実行ファイルの更新状態と、前記実行中ライブラリ状態管理テーブルに格納されている前記動的リンクライブラリの実行ファイルの更新状態とを比較し、前記動的リンクライブラリの実行ファイルの更新の有無を判断する更新有無判断工程と、
前記更新有無判断工程で前記動的リンクライブラリの実行ファイルが更新されていると判断した場合は、前記動的リンクライブラリ実行部が、前記実行中ライブラリ状態管理テーブルに格納されている前記動的リンクライブラリの実行ファイルの更新状態を更新するとともに、更新後の前記動的リンクライブラリの実行ファイルの実行アドレスを算出する状態更新工程と、
前記演算処理部が、前記状態更新工程で算出した前記実行アドレスを参照して、前記動的リンクライブラリを実行する実行工程と、
を有することを特徴とする動的リンクライブラリの更新、実行方法。 - 請求項1記載の動的リンクライブラリの更新、実行方法において、
前記動的リンクライブラリの実行ファイルの更新状態は、前記ライブラリ更新状態管理テーブル及び前記実行中ライブラリ状態管理テーブルに格納される管理番号で表され、
前記更新状態格納工程では、前記動的リンクライブラリ実行ファイル作成部が、前記動的リンクライブラリの実行ファイルを作成するときに、前記管理番号を更新して前記ライブラリ更新状態管理テーブルに格納し、
前記更新有無判断工程では、前記動的リンクライブラリ実行部が、前記ライブラリ更新状態管理テーブルに格納されている前記管理番号と、前記実行中ライブラリ状態管理テーブルに格納されている前記管理番号とを比較して、前記動的リンクライブラリの実行ファイルの更新の有無を判断し、
前記状態更新工程では、前記動的リンクライブラリ実行部が、前記実行中ライブラリ状態管理テーブルに格納されている前記管理番号を更新するとともに、更新後の前記動的リンクライブラリの実行ファイルの実行アドレスを算出する動的リンクライブラリの更新、実行方法。 - 請求項1記載の動的リンクライブラリの更新、実行方法において、
前記動的リンクライブラリの実行ファイルの更新状態は、前記ライブラリ更新状態管理テーブル及び前記実行中ライブラリ状態管理テーブルに格納される前記動的リンクライブラリの実行ファイルのタイムスタンプで表され、
前記更新状態格納工程では、前記動的リンクライブラリ実行ファイル作成部が、前記動的リンクライブラリの実行ファイルを作成するときに、前記タイムスタンプを更新して前記ライブラリ更新状態管理テーブルに格納し、
前記更新有無判断工程では、前記動的リンクライブラリ実行部が、前記ライブラリ更新状態管理テーブルに格納されている前記タイムスタンプと、前記実行中ライブラリ状態管理テーブルに格納されている前記タイムスタンプとを比較して、前記動的リンクライブラリの実行ファイルの更新の有無を判断し、
前記状態更新工程では、前記動的リンクライブラリ実行部が、前記実行中ライブラリ状態管理テーブルに格納されている前記タイムスタンプを更新するとともに、更新後の前記動的リンクライブラリの実行ファイルの実行アドレスを算出する動的リンクライブラリの更新、実行方法。 - メインプログラムを実行する計算機が、前記メインプログラムにリンクされている動的リンクライブラリを更新し実行する方法において、
前記計算機には、記憶部と、前記メインプログラムと前記動的リンクライブラリを実行する演算処理部と、前記動的リンクライブラリの実行ファイルを作成して前記記憶部に格納する動的リンクライブラリ実行ファイル作成部と、前記動的リンクライブラリの実行ファイルの更新の有無を判断する動的リンクライブラリ実行部と、前記メインプログラムにリンクされている前記動的リンクライブラリの実行ファイルのタイムスタンプを格納し、前記記憶部に保存される実行中ライブラリ状態管理テーブルと、が備えられ、
前記演算処理部が前記メインプログラムにリンクされている前記動的リンクライブラリを実行するときに、前記動的リンクライブラリ実行部が、前記動的リンクライブラリの実行ファイルのタイムスタンプと、前記実行中ライブラリ状態管理テーブルに格納されている前記動的リンクライブラリの実行ファイルのタイムスタンプとを比較し、前記動的リンクライブラリの実行ファイルの更新の有無を判断する更新有無判断工程と、
前記更新有無判断工程で前記動的リンクライブラリの実行ファイルが更新されていると判断した場合は、前記動的リンクライブラリ実行部が、前記実行中ライブラリ状態管理テーブルに格納されている前記動的リンクライブラリの実行ファイルのタイムスタンプを更新するとともに、更新後の前記動的リンクライブラリの実行ファイルの実行アドレスを算出する状態更新工程と、
前記演算処理部が、前記状態更新工程で算出した前記実行アドレスを参照して、前記動的リンクライブラリを実行する実行工程と、
を有することを特徴とする動的リンクライブラリの更新、実行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011249233A JP2013105349A (ja) | 2011-11-15 | 2011-11-15 | 動的リンクライブラリの更新、実行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011249233A JP2013105349A (ja) | 2011-11-15 | 2011-11-15 | 動的リンクライブラリの更新、実行方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013105349A true JP2013105349A (ja) | 2013-05-30 |
Family
ID=48624829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011249233A Pending JP2013105349A (ja) | 2011-11-15 | 2011-11-15 | 動的リンクライブラリの更新、実行方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013105349A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107193609A (zh) * | 2017-05-27 | 2017-09-22 | 北京奇虎科技有限公司 | 应用中功能模块调用方法及装置、电子设备 |
US10338914B2 (en) | 2014-09-01 | 2019-07-02 | Hewlett Packard Enterprise Development Lp | Dynamically applying a patch to a shared library |
-
2011
- 2011-11-15 JP JP2011249233A patent/JP2013105349A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10338914B2 (en) | 2014-09-01 | 2019-07-02 | Hewlett Packard Enterprise Development Lp | Dynamically applying a patch to a shared library |
CN107193609A (zh) * | 2017-05-27 | 2017-09-22 | 北京奇虎科技有限公司 | 应用中功能模块调用方法及装置、电子设备 |
CN107193609B (zh) * | 2017-05-27 | 2021-05-07 | 北京奇虎科技有限公司 | 应用中功能模块调用方法及装置、电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10223097B2 (en) | Dynamic update of an application in compilation and deployment with cold-swapping | |
US8776014B2 (en) | Software build analysis | |
US8176465B2 (en) | Pluggable model elements | |
US9519495B2 (en) | Timed API rules for runtime verification | |
US11144438B1 (en) | Incremental build system using an inferred dependency graph collected with a system monitor | |
US10719336B1 (en) | Dependency version conflict auto-resolution | |
JP5244826B2 (ja) | ユーザーインターフェース要素を用いた分離、管理および通信 | |
CN103718155A (zh) | 运行时系统 | |
US8490118B2 (en) | Wait on address synchronization interface | |
WO2011066261A1 (en) | Fast restart on a virtual machine | |
US8898649B2 (en) | Application program analysis method, analysis system and recording medium for identifying a contributing factor for an invalid operation of an application program | |
US8584080B2 (en) | Modeling and generating computer software product line variants | |
US20120159515A1 (en) | Sharing object representations | |
CN108334333B (zh) | 一种源代码库更新方法及装置 | |
US9170827B2 (en) | Configuration file compatibility | |
US9841982B2 (en) | Locating import class files at alternate locations than specified in classpath information | |
JP2014123249A (ja) | 情報処理装置、プログラム、及び情報処理方法 | |
TW201324347A (zh) | 功能模組命令管理系統及方法 | |
CN110489401B (zh) | 一种数据库对象的部署方法及装置 | |
CN110705715B (zh) | 超参数管理方法、装置及电子设备 | |
JP2013105349A (ja) | 動的リンクライブラリの更新、実行方法 | |
CN110334031B (zh) | 内存分配代码检测方法、装置、计算机设备及存储介质 | |
US8756611B2 (en) | Delayed expansion of values in context | |
US20170123769A1 (en) | Method and system for parameter model framework | |
US9720655B1 (en) | User interface event orchestration |