よくあるご質問
(FAQ)


よくあるご質問(FAQ)製品について

- 製品について > 制御機器 > シーケンサ MELSEC > MELSEC-Qシリーズ > CPU > C言語CPU > ファイルのオープン/生成関数でのファイル名(相対パス/絶対パス)指定について
製品について
ファイルのオープン/生成関数でのファイル名(相対パス/絶対パス)指定について
ファイルのオープン/生成(open()、fopen()、creat()等)実行時、
相対パスでファイル名を指定すると関数がエラーとなる場合があります。
原因と対処方法を教えて下さい。
- カテゴリー :
-
- 製品について > 制御機器 > シーケンサ MELSEC > MELSEC-Qシリーズ > CPU > C言語CPU
回答
VxWorksでは、全タスクでカレントディレクトリは1つしか保持できず、
カレントディレクトリは全てのタスクで共有されるという制約があります。
例えば、2つのタスクTaskAとTaskBがあり、TaskAがchdir("/dirA")を呼び出した後に、
TaskBがchdir("/dirB")を呼び出しますと、TaskAのカレントディレクトリもdirBになります。
この状態でタスクAが相対パス指定でcreat()を実行すると、以下エラーとなる場合があります。
・errno 2(S_errno_ENOENT:No such file or directory)
ユーザプログラムでは相対パスを使用せずに、
絶対パス指定でファイルのオープン/生成(open()、fopen()、creat()等)を実行してください。
- 製品名
- MELSEC-Qシリーズ
- シリーズ
- C言語コントローラ