LinuxでGCCを使用してこれをコンパイルすると、入力を待っているときに「hi」が表示されます。scanfを使用したくないので、ユーザーに名前の入力を求めているときにhiが表示される理由を知りたいです。また、渡されたばかりのファイルの名前を出力したい場合、ガベージ文字が表示されます。NetBeansでは、必要なものを取得します。しかし、Linuxでは、奇妙な動作をすることにします。助けてください
コード:
int main(int argc, char** argv)
{
char val[70];
if(write(1, "Please input your name", 36)!=36)
{
return -1;
}
if(read(0, val, 36) < 0)
{}
if(write(1, val, 36)!=36)
{}
printf("Yo");//THIS IS PRINTING OUT WAY BEFORE IT IS CALLED, ANY VARIABLE WITH A STRING GETS PRINTED OUT, EVEN WITHOUT PRINTF BEING INVOKED
}
出力:
Please input the file nameYo: hi
hi
???Om?0?a?Sm? <<WHAT IS THIS? I DONT GET THIS ON NETBEANS