-- TOC --
测试一下write系统调用,同时测试我的mychar驱动。
$ cat try_write.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <fcntl.h>
#include <unistd.h>
#include <assert.h>
#define ERRBUF_SIZE 32
#define _PERROR \
do { \
char errbuf[ERRBUF_SIZE] = {0}; \
sprintf(errbuf, "%s:%d", __FILE__, __LINE__); \
perror(errbuf); \
} while(0) \
int main(int argc, char **argv) {
int i, fd;
ssize_t cnt;
char *newline = "\n";
/* disable the unused warning */
assert(argc == 3);
/* open */
if ((fd=open(argv[1],O_WRONLY)) == -1) {
_PERROR;
return errno;
}
/* write loop */
for (i=0; i<10; ++i) {
if ((cnt=write(fd,argv[2],strlen(argv[2]))) == -1) {
_PERROR;
return errno;
}
if ((cnt=write(fd,newline,1)) == -1) {
_PERROR;
return errno;
}
}
/* close */
if (close(fd) == -1) {
_PERROR;
return errno;
}
return 0;
}
将命令行输入的字符串连续写入10次,自动加上换行。
测试如下:
$ gcc -Wall -Wextra try_write.c -o try_write
$ ./try_write mychar-5 cs.pynote.net
$ cat mychar-5
cs.pynote.net
cs.pynote.net
cs.pynote.net
cs.pynote.net
cs.pynote.net
cs.pynote.net
cs.pynote.net
cs.pynote.net
cs.pynote.net
cs.pynote.net
Nice~~
本文链接:https://cs.pynote.net/sf/linux/dd/202112301/
-- EOF --
-- MORE --