리눅스에서 man 페이지 처럼 출력하고 싶은데요 조건은 먼저 20라인를 출력하고 , 저수준(open, read)으로 처리할려고 합니다. 한라인씩 구할려면 어떻게 해야하는지... 알려주세요!
while문으로 1 octet씩 읽어 들이면서 New Line을 체크하세요~ ^^
자세한설명 부탁드리겠습니다.
1 octet씩 읽어서 '\n'인지 체크 하시다가 '\n'을 만나면 키보드입력 대기 상태로 하시고 입력을 받으면 다음줄을 같은 방법으로 출력하시라는 것 같네요. 맞나? :roll:
세상이 뭐라하든... :)
man 페이지는 less나 more에 의존합니다. 출력을 less로 redirect해서 보시죠?
#include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int read_fd(int fd); main(int argc, char *argv[]) { int fd; if (argc != 2) { printf("error input para...\n"); exit(0); } fd = open(argv[1], O_RDONLY, 0666); if (fd <= 0) { printf("file open error\n"); exit(0); } read_fd(fd); printf("\n\nend...\n"); } int read_fd(int fd) { int len = 0; int i = 0; char buff[1024] = {0}; do { if ((len = read(fd, buff + i, 1)) < 0) return -1; if (*(buff + i) == '\n') { printf("%s", buff); memset(buff, 0x00, sizeof(buff)); i = 0; } else if (*(buff + i) == '\r') continue; else i++; } while (len); }
방금 돌려봤는데.. 이렇게 하면 대충... ^^ 라인수 계산하는거만 넣으면 되겟네요...
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
while문으로 1 octet씩 읽어 들이면서 New Line을 체크하세
while문으로 1 octet씩 읽어 들이면서 New Line을 체크하세요~ ^^
자세한설명 부탁드리겠습니다.
자세한설명 부탁드리겠습니다.
음...
1 octet씩 읽어서 '\n'인지 체크 하시다가 '\n'을 만나면 키보드입력 대기 상태로 하시고 입력을 받으면 다음줄을 같은 방법으로 출력하시라는 것 같네요. 맞나? :roll:
세상이 뭐라하든... :)
man 페이지는 less나 more에 의존합니다. 출력을 less로 re
man 페이지는 less나 more에 의존합니다. 출력을 less로 redirect해서 보시죠?
[code:1]#include <stdio.h>#inc
방금 돌려봤는데.. 이렇게 하면 대충... ^^
라인수 계산하는거만 넣으면 되겟네요...
댓글 달기