현재 파일의 확장자를 비교하려면 어떻게 해야하나요??

Shinkyo의 이미지

현재의 폴더에 접근하여 파일들의 목록을 불러오는것 까지 되었습니다.

그런데 특정한 확장자를 가진 파일만 출력하고 싶은데요

확장자만 비교해서 출력을 하고싶은데 어떻게 해야하는지 궁금합니다.

뒤에서부터 비교해주는 함수가 있나요? 사용법도 부탁합니다. 검색을 해봤는데 안나오더라구요..

현재 폴더에서 mp3인 파일만 출력해주고 싶습니다.

ls명령어 말고 프로그램 내에서 구현하려고 합니다.

bus710의 이미지

ls *.mp3

life is only one time

Shinkyo의 이미지

그건 알고있구요.. strcmp로 비교하려고 하는데

소스코드 내에서 어떻게 해야하는지 궁금하거든요

현재 이렇게 되어있습니다.

------------------------------------------

struct dirent *dirp;
if(strncmp(dirp->d_name, ".", 1)){ ... }

익명사용자의 이미지

strncmp(dirp->d_name + sizeof(dirp->d_name) - 4 ),".mp3",4)

하면 안되나요 ? ^^;

또 ls를 popen으로 열어서 그 출력을 받는것도 좋고요

(타이밍 문제가 조금 있지만... --; 꽤 쓸만한 방법입니다)

FILE *list=NULL

list=popen("ls *.mp3");

do
{
if(fgets(buffer,1024,list) == NULL)
break;

// 처리 --;
}while( count < max_count);
pclose(list);

Shinkyo의 이미지

그런 방법이있었군요 왜 거기까지 생각을 못했는지 ㅡㅡ;;

그런데 sizeof로 하니까 안되더라구요 그래서 아래처럼 바꾸고 해결했습니다 ^^ 감사합니다!

아, 그리고 같으면 0을 리턴하기때문에 !를 추가했습니다. ㅋ

if(!(strncmp(dirp->d_name + strlen(dirp->d_name) - 4 ),".mp3",4))

익명사용자의 이미지

간단하게 이렇게 하면 될거 같은데요.

pointer = strstr(dirp->d_anme,".mp3");

if( pointer)
show();

coremaker의 이미지

뒤부터 잘라주는 함수가 있습니다.. strstr 이 있고..
뭔가 하나 더 있습니다..

pthread 환경하에서.. 보호되는 함수인지는 잘 모르겠습니다..

Shinkyo의 이미지

strstr이라는 함수가 있었군요.. 답변 감사합니다. 방금 테스트 해보았는데

잘 동작합니다 ^^ 그런데 반환값이 뭔가요? 포인터인가??

아무튼 if문 안에 넣어서 다 해결했습니다. 좋은거 배워가네요 ^^ 감사합니다.

nahanjang의 이미지

문자열을 특정 문자로 구분할때 요긴합니다.

STRCHR(3)                  리눅스 프로그래머 매뉴얼                  STRCHR(3)
 
이름
       strchr, strrchr - 문자열에서 문자를 찾는다.
 
사용법
       #include <string.h>
 
       char *strchr(const char *s, int c);
 
       char *strrchr(const char *s, int c);
 
설명
       strchr() 함수는 문자열 s에서 문자 c가 처음 발견된 곳의포인터를 반환한다.
 
       strrchr() 함수는 문자열 s에서 문자 c가 마지막으로 발견된곳의 포인터를 반환한다.
 
반환값
       strchr() 와 strrchr() 함수는 일치하는 문자에 대한 포인터를반환하거나 문자가 발견되지 않는다면 NULL을 반환한다.
 
호환
       SVID 3, POSIX, BSD 4.3, ISO 9899
 
관련 항목
       index(3), memchr(3), rindex(3), strpbrk(3), strsep(3), strspn(3), strstr(3), strtok(3)
 
역자
       정강훈 <skyeyes@soback.kornet.net>, 2001년 2월 24일
 
                                1993년 4월 12일                      STRCHR(3)
Shinkyo의 이미지

유용하지만 모르고있던 함수들이 너무 많네요

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.