그러면 리눅스에서는 O_BINARY가 man page에도 없던데..
O_BINARY를 open 에서 옵션으로 쓸수 없다는 말이신가요?
리눅스에서 open에 O_BINARY 모드를 주는 방법은 없습니까
#include <sys/socket.h>
#include <sys/stat.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <fcntl.h>
제가 인클루드한 헤더입니다
O_BINARY에서 정의되지 않았다고 오류가 뜹니다.
Open fn For Binary Access Read As #1
size = 1024 * 2
If size > fnsize Then size = fnsize
Do While Not EOF(1)
sendbyte = sendbyte + size
If fnsize < sendbyte Then size = size - (sendbyte - fnsize)
ReDim rwbuf(size)
Get #1, , rwbuf
이런식으로 보내는데
보낸파일이랑 받은파일이 대략 그 줄수만큼 차이가 납니다
끝에 \n이런게 붙나봐요. 빈칸이 잔뜩 붙습니다.
http://www.opengroup.org/onlinepubs/0079
http://www.opengroup.org/onlinepubs/007908799/xsh/open.html
여기 참고하세요^^
------식은이 처------
길이 끝나는 저기엔 아무 것도 없어요. 희망이고 나발이고 아무 것도 없어.
질문있는데요.
그러면 리눅스에서는 O_BINARY가 man page에도 없던데..
O_BINARY를 open 에서 옵션으로 쓸수 없다는 말이신가요?
리눅스에서 open에 O_BINARY 모드를 주는 방법은 없습니까
#include <sys/socket.h>
#include <sys/stat.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <fcntl.h>
제가 인클루드한 헤더입니다
O_BINARY에서 정의되지 않았다고 오류가 뜹니다.
제가 지금 리눅스 서버에서 이렇게 열고(바이너리로 안열리는듯 합니다.)
비주얼 베이직에서 이렇게 보냅니다.
이런식으로 보내는데
보낸파일이랑 받은파일이 대략 그 줄수만큼 차이가 납니다
끝에 \n이런게 붙나봐요. 빈칸이 잔뜩 붙습니다.
도와주세요~
리눅스 뿐만이 아니라 모든 Unix 계열 OS 들에는 파일을 바이너리로
리눅스 뿐만이 아니라 모든 Unix 계열 OS 들에는 파일을 바이너리로 연다..라는 것은 없습니다.
왜냐하면, DOS 나 MS Windows 계열에서 이야기하는 TEXT 모드가 없기 때문이죠.
DOS 나 MS Windows 에서의 BINARY 모드는 Unix 계열에서의 표준 모드와 같습니다.
바이너리 모드로 안 열리기 때문에 문제가 생기는게 아니라, 다른 이유로 인해서 문제가 생기는 것일 겁니다.
윈도우/도스에서는 줄바꿈이 CR+LF 두 문자로 구성되며유닉스/리눅스
윈도우/도스에서는 줄바꿈이 CR+LF 두 문자로 구성되며
유닉스/리눅스에서는 줄바꿈이 CR 한문자로 구성됩니다.
만일 윈도우에서 텍스트 파일을 리눅스로 또는 리눅스에 저장되었던 텍스트
파일을 윈도우로 보낼때는, CR+LF <-> CR해주는 프로그램으로 만들어야 합니다.
바이너리파일이라면 당연히, 그냥 보내고 받아야겠지요.
늦었지만
인터넷에서 본 어떤 코드에는 이렇게 되어있더군요.
#ifndef O_BINARY
#define O_BINARY 0x00
#endif
리눅스에서는 그냥 무시해도 되는 플래그 같습니다.
댓글 달기