前提・実現したいこと
低水準入出力関数(open関数)を使用して,『/ect/os-release』の内容を’小文字を大文字に変換’しつつ『./os-release.copied』にコピーするプログラムを作成したのですが,自分のコードが正しくできているのかわからないため,添削していただけないでしょうか.
open, close, read, writeの関数を用いて実現したいです.
OSはLinuxで,C言語を使用しています.
該当のソースコード
#include <unistd.h> // open, close, write #include <fcntl.h> // O_RDONLY, O_WRONLY, O_CREAT, O_TRUNC #include <stdio.h> // sprintf() #include<ctype.h> //toupper() #define BUF_SZ 8 int main(int argc, char *argv[]) { int fdr, fdw, len, n; char buf[BUF_SZ]; fdr = open("etc/os-release", O_RDONLY); fdw = open("./os-release.copied", O_WRONLY | O_CREAT , 0666); while ( (len = read(fdr, buf, BUF_SZ)) != 0 ){ for(n=0;n<len;n++){ buf[n] = toupper(buf[n]); } write(fdw, buf, len); } close(fdr); close(fdw); return 0; }
試したこと
gcc 名前.cでプログラムを動かしてみましたが,出力先(./os-release.copied)にコピーされたのかの確認方法がわからないため,コードが正しいのかわからない状況です.
補足情報(FW/ツールのバージョンなど)
OS:Linux
プログラム言語:C
Linuxのコマンドプロンプトでやっています.