2009-09-02 9 views
0

これは大丈夫ですか?私のfilepointerがXYZ()で乱れてしまいますか?ファイルポインタの位置

function XYZ() 
{ 
    fopen(myFile) 
    // some processing 
    // I am in the middle of the file 
    Call ABC() 
} 

ABC() 
{ 
    fopen(myFile) 
    //do some processing 
    fclose (myFile) 
} 
+0

、これはどのような言語ですが? –

答えて

1

ファイルに追加のハンドルを開くと、いいえ、以前のハンドルは影響を受けません。そのようにメモ帳でファイルを2回開くと、最初のインスタンスでカーソルが1つの部分に移動しますが、カーソルは別のインスタンスでは移動しません。

(悪い例、私が知っている...)

1

これも、それは技術的に正しいかもしれないが、悪い形です。 あなたの言語は、私は非常にその すなわち使用をお勧めしますtry-finally constructサポートしている場合は、より良い方法は

function XYZ() 
{ 
    handle = fopen(myFile) 
    // some processing 
    // I am in the middle of the file 
    Call ABC(handle) 
    fclose(handle) 
} 

ABC (handle) 
{ 
    //do some processing on handle 
} 

こととなります

function XYZ() 
{ 
    handle = fopen(myFile) 
    try 
    { 
     // some processing 
     // I am in the middle of the file 
     Call ABC(handle) 
    } 
    finally 
    { 
     fclose(handle) 
    } 
} 

ABC (FilePtr handle) 
{ 
    //do some processing on handle 
}