C言語システムコール-writev
writevシステムコール
概要
writevは複数のバッファを使用して書き込み処理を行います。
writeを複数のバッファ指定できるように機能拡張されたシステムコールといえます。
サンプルプログラム
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/uio.h>
/*!
* @brief sample
* @return 0:success/-1:failure
*/
static int
sample_func(void)
{
int rc = 0;
struct iovec vector[3];
char buf1[4] = "str";
char buf2[6] = "strn";
char buf3[8] = "string\n";
vector[0].iov_base = buf1;
vector[0].iov_len = strlen(buf1);
vector[1].iov_base = buf2;
vector[1].iov_len = strlen(buf2);
vector[2].iov_base = buf3;
vector[2].iov_len = strlen(buf3);
rc = writev(1, vector, 3);
if(rc < 0){
printf("Error: writev() %s\n", strerror(errno));
return(-1);
}
return(0);
}
int
main(int argc, char *argv[])
{
int rc = 0;
if(argc != 1){
fprintf(stderr, "Usage: %s\n", argv[0]);
exit(EXIT_FAILURE);
}
rc = sample_func();
if(rc != 0) exit(EXIT_FAILURE);
exit(EXIT_SUCCESS);
}
関連ページ
- C言語システムコール-open
- C言語システムコール-creat
- C言語システムコール-close
- C言語システムコール-read
- C言語システムコール-write
- C言語システムコール-lseek
- C言語システムコール-truncate
- C言語システムコール-rename
- C言語システムコール-mkdir
- C言語システムコール-rmdir
- C言語システムコール-link
- C言語
- C言語システムコール