14472


C言語でシステムコールプログラミングをしようとしています。[*1]

<http://www.atmarkit.co.jp/ait/articles/1112/13/news117.html>  
そこで、上のサイトを参考に（正確にはコピペ）プログラムを実行しようとしました。

[code]

    #include <unistd.h>
    #include <fcntl.h>
    int
    main(void)
    {
        int fdi, fdo;
        char b[1];
        fdi = open("in", O_RDONLY);
        fdo = open("out", O_WRONLY);
        while (0 < read(fdi, b, 1)) {
            write(fdo, b, 1);
        }
        close(fdi);
        close(fdo);
    }
    
[/code]

上のプログラムのopenのところでエラーになってしまいます。  
なにか、多分インクルードファイルが少ないのだと思うのですがどのように解決したらいいですか。

*1: 正確には、コンパイラはC++ですがCの機能だけを使う予定です。
[code]

    "/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
    make[1]: ディレクトリ `/home/aaa/NetBeansProjects/C' に入ります
    "/usr/bin/make"  -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/c_____
    make[2]: ディレクトリ `/home/aaa/NetBeansProjects/C' に入ります
    mkdir -p build/Debug/GNU-Linux-x86/_ext/986599228
    rm -f "build/Debug/GNU-Linux-x86/_ext/986599228/02.o.d"
    g++    -c -g -MMD -MP -MF "build/Debug/GNU-Linux-x86/_ext/986599228/02.o.d" -o build/Debug/GNU-Linux-x86/_ext/986599228/02.o /home/aaa/NetBeansProjects/C/問題4-X/02.cpp
    mkdir -p dist/Debug/GNU-Linux-x86
    g++     -o dist/Debug/GNU-Linux-x86/c_____ build/Debug/GNU-Linux-x86/_ext/986599228/01.o build/Debug/GNU-Linux-x86/_ext/986599228/02.o 
    build/Debug/GNU-Linux-x86/_ext/986599228/02.o: 関数 `main' 内:
    /home/aaa/NetBeansProjects/C/問題4-X/02.cpp:11: `main' が重複して定義されています
    build/Debug/GNU-Linux-x86/_ext/986599228/01.o:/home/aaa/NetBeansProjects/C/問題4-X/01.cpp:17: ここで最初に定義されています
    collect2: error: ld returned 1 exit status
    make[2]: *** [dist/Debug/GNU-Linux-x86/c_____] エラー 1
    make[2]: ディレクトリ `/home/aaa/NetBeansProjects/C' から出ます
    make[1]: *** [.build-conf] エラー 2
    make[1]: ディレクトリ `/home/aaa/NetBeansProjects/C' から出ます
    make: *** [.build-impl] エラー 2
    
    ビルド FAILED (終了値2, 合計時間: 213ms)
    
[/code]


CC BY-SA 3.0
2015-08-16T10:03:10.303
14470
2015-08-16T10:54:10.767
2015-08-16T10:54:10.767
8000
10941
question
c
Cでシステムコールプログラミング


複数ソースコードがコンパイルされてしまって、それぞれにmain()があってシンボルの重複でリンクエラーになってる気がします。。  
/home/aaa/NetBeansProjects/C/問題4-X/01.cpp  
/home/aaa/NetBeansProjects/C/問題4-X/02.cpp

インクルードするヘッダファイルは合っていると思います。  
NetBeansはわからないのですが、そのソースコード単体をgccでコマンドラインでビルドすると通りませんか？


CC BY-SA 3.0
2015-08-16T10:44:22.713
14472
2015-08-16T10:44:22.713
8461
14470
answer