_write
데이터를 파일에 씁니다.
int _write(
int fd,
const void *buffer,
unsigned int count
);
매개 변수
fd
파일 설명자를 파일에 데이터가 기록 됩니다.buffer
기록할 데이터입니다.count
바이트 수입니다.
반환 값
연결에 성공 하면 _write 실제로 작성 된 바이트 수를 반환 합니다.실제 디스크의 남은 공간 함수를 디스크에 쓰기를 시도 하는 버퍼의 크기 보다 작은 경우 _write 오류가 발생 하는 버퍼의 내용을 디스크에 플러시하지 않습니다.반환 값-1은 오류를 나타냅니다.잘못 된 매개 변수가 전달 되 면이 함수는 잘못 된 매개 변수 처리기의 설명에 따라 호출 매개 변수 유효성 검사.실행 계속 수 있으면 함수는-1을 반환 하 고 errno 세 가지 값 중 하나로 설정 됩니다: EBADF, 파일 설명자는 올바르지 않거나 파일을 쓰기에 고 열 ENOSPC에 충분 한 공간이 남아지 않습니다 즉 장치에 대 한 작업입니다. 또는 EINVAL, 뜻은 buffer 는 null 포인터입니다.
참조 하십시오 _doserrno, errno, _sys_errlist, 및 _sys_nerr 에서이 및 기타 자세한 내용은 반환 코드입니다.
텍스트 모드에서 파일을 열면 각 줄 바꿈 문자가 캐리지 리턴 – 줄 바꿈 쌍 출력에 대체 됩니다.대체 반환 값 영향을 주지 않습니다.
설명
_write 쓰기 작동 count 바이트 buffer 에 관련 된 파일 fd.지정 된 파일과 관련 된 파일 포인터 (있는 경우)의 현재 위치에 쓰기 작업을 시작 합니다.파일 추가 대 한 열려 있는 경우 파일의 현재 마지막에 작업을 시작 합니다.쓰기 작업을 수행한 후 파일 포인터를 실제로 쓴 바이트 수 만큼 증가 합니다.
텍스트 모드에서 연 파일에 쓸 때 _write 의 논리를 파일 끝으로 CTRL + Z 문자를 처리 합니다.장치에 쓸 때 _write CTRL + Z 문자 버퍼 출력 단자로 취급 합니다.
요구 사항
루틴 |
필수 헤더 |
---|---|
_write |
<io.h> |
추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.
예제
// crt__write.c
//
// This program opens a file for output and uses _write to write
// some bytes to the file.
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <share.h>
char buffer[] = "This is a test of '_write' function";
int main( void )
{
int fileHandle = 0;
unsigned bytesWritten = 0;
if ( _sopen_s(&fileHandle, "write.o", _O_RDWR | _O_CREAT,
_SH_DENYNO, _S_IREAD | _S_IWRITE) )
return -1;
if (( bytesWritten = _write( fileHandle, buffer, sizeof( buffer ))) == -1 )
{
switch(errno)
{
case EBADF:
perror("Bad file descriptor!");
break;
case ENOSPC:
perror("No space left on device!");
break;
case EINVAL:
perror("Invalid parameter: buffer was NULL!");
break;
default:
// An unrelated error occured
perror("Unexpected error!");
}
}
else
{
printf_s( "Wrote %u bytes to file.\n", bytesWritten );
}
_close( fileHandle );
}