に取り組んでいunix system calls
ます。を使用して を読み取り、string
をstandard input
使用read()
してファイルに書き込みたいwrite()
。
open
file 、read
fromstring
にはできますが、ファイルにはstandard input
できませんwrite
。
私のコードは:
#include <unistd.h> // to remove WARNINGS LIKE warning: implicit declaration of function ‘read’ , warning: implicit declaration of function ‘write’
#include<fcntl.h> /* defines options flags */
#include<sys/types.h> /* defines types used by sys/stat.h */
#include<sys/stat.h> /* defines S_IREAD & S_IWRITE */
#include<stdio.h>
int main(void)
{
int fd,readd;
char *buf[1024];
fd = open("myfile",O_RDWR);
if(fd != -1)
printf("open error\n");
else
{
// read i\p from stdin , and write it to myfile.txt
if((readd=read(0,buf,sizeof(buf)))<0)
printf("read error\n");
else
{
printf("\n%s",buf);
printf("\n%d",readd);
if(write(fd,buf,readd) != readd)
printf("write error\n");
}
}
return 0;
}
出力は
write error
それは正常に動作していwrite
ますstring
。standard output
質問 :
1) 何が問題なのwrite()
ですか?
\n
2)行末に改行文字を入れたい。それはどのように可能standard input
ですか?