私は Linux の C プログラムがファイルに書き込む方法を分析していましたが、要約すると次のようになります。
#include <fcntl.h>
#include <stdio.h>
#include <sys/stat.h>
#include <unistd.h>
#include "restart.h"
#define CREATE_FLAGS (O_WRONLY | O_CREAT | O_APPEND)
#define CREATE_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
int main(void) {
int fd;
fd = open("my.file", CREATE_FLAGS, CREATE_MODE);
dup2(fd, STDOUT_FILENO);
r_close(fd) ;
write(STDOUT_FILENO, "Hello World", 11) ;
return 0;
}
2 つの小さなヘッダー ファイル r_close.c と restart.h は、このリンクにあります。
だから私の質問は、プログラムがファイルにどのように書き込んでいるか知りたいということです。たとえば、次のように c# で行うことの違いは何ですか。
static void Main(string[] args)
{
var file = System.IO.File.OpenWrite("my.file");
file.Write(System.Text.Encoding.ASCII.GetBytes("Hello World"), 0, 11);
file.Close();
}
http://www.mkssoftware.com/docs/man3/dup2.3.aspなどの多くのリンクで dup2 メソッドの説明を見ましたが、 基本的に何をするのか理解するのに苦労しています。