に取り組んでいunix system calls
ます。ここで私のコードでは、ファイルを取得しopen
、そのファイルに対して操作を実行lseek
します。次のコードを調べてください。
#include <stdio.h>
#include <fcntl.h>
#include <sys/types.h>
#include <unistd.h>
int main(void)
{
int fd;
fd = open("testfile.txt", O_RDONLY);
if(fd < 0 );
printf("problem in openning file \n");
if(lseek(fd,0,SEEK_CUR) == -1)
printf("cant seek\n");
else
printf("seek ok\n");
exit(0);
}
私の出力は次のとおりです。
problem in openning file
seek ok
私の質問は:
1)open
システム コールが負のファイル記述子を返すのはなぜですか? (testfile.txtファイルが同じディレクトリ内にあることを確認しました)
2) ここで、ファイルを開くことができませopen()
ん (負のファイル記述子が返されるため)。ファイルを開かlseek
ずに成功するにはどうすればよいですか?