다음을 통해 공유


_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 );
}
  

참고 항목

참조

하위 수준 I/O

fwrite

_open, _wopen

_read