当前位置:   article > 正文

linuxC库函数---write_linux c write

linux c write

1、头文件

#include<unistd.h>
  • 1

2、函数原型

ssize_t write (int fd,const void * buf,size_t count);
  • 1

3、返回值

如果顺利write()会返回实际写入的字节数。当有错误发生时则返回-1,错误代码存入errno中。
EINTR 此调用被信号所中断。
EAGAIN 当使用不可阻断I/O 时(O_NONBLOCK),若无数据可读取则返回此值。
EBADF 参数fd非有效的文件描述词,或该文件已关闭。
  • 1
  • 2
  • 3
  • 4

4、举例

#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>

int main(void) 
{
	printf ("write process pid: %d\n", getpid ());
 	char buf[64] = { 0 };
  	int n = 0;
  	while (1) 
  	{
    	if ((n = read (STDIN_FILENO, buf, 64)) > 0) 
		{
      		int fd = open ("data.txt", O_WRONLY|O_CREAT, 0664);
      		if (fd < 0) 
	  		{
        		perror ("open");
        		continue;
      		}   
	  	buf[n] = '\0';
      	write (fd, buf, n + 1); 
      	close (fd);
    	}   
  	}
  	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main (void) 
{
  	char buf[64];
  	int i;

  	printf ("read process pid: %d\n", getpid());
  	int fd = open ("data.txt", O_RDONLY);
  	if (fd < 0) 
  	{
    	perror ("open");
    	return -1;
  	}
  	int len = 0;
	int last_len = 0;
  	while (1)
	{
  		if ((len = read(fd, buf, 64)) < 0) 
  		{
    		perror ("read");
    		close (fd);
    		return -2;
  		}
  		printf ("%s", buf);
  		lseek (fd,0, SEEK_SET);
		sleep (5);
	}
	close (fd);
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/256372
推荐阅读
相关标签
  

闽ICP备14008679号