我正在學習操作系統課程。 我們被教了管道,這個程序沒有在GCC 4.4.7中編譯。當我們將main
更改爲int main
時,它編譯得很好。是什麼原因?此管道程序不編譯
命令行:gcc pipedemo.c
#include<stdio.h>
#include<sys/types.h>
#include<string.h>
#include<unistd.h>
#include<stdlib.h>
#define BUFFER_SIZE 100
#define READ_END 0
#define WRITE_END 1
main()
{
char source[]="pipe_program";
char dest[BUFFER_SIZE];
char datas[BUFFER_SIZE];
char datar[BUFFER_SIZE];
int fd1[2],fd2[2];
pid_t pid;
if(pipe(fd1)==-1)
{
fprintf(stderr,"Pipe creation failed\n");
exit(0);
}
if(pipe(fd2)==-1)
{
//...
}
//...
}
是否有任何理由讓你或你的朋友想使用非標準的函數定義語法? – MikeCAT
原因可能是'-Werror'選項或其他東西。你介意公開命令行選項嗎? – MikeCAT
@MikeCAT我沒有理由,但默認返回類型是int,所以我們寫了。但我想知道錯誤是什麼,對編譯沒有興趣 –