사용자 삽입 이미지
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>

main(int argc, char *argv[])
{
   DIR *dp;
   struct dirent *dirp;
   char *dir;

   /* 명령 라인의 인수가 1개라면 현재 작업 디렉토리에 대해 동작 */
   if (argc == 1)
      dir = ".";
   /* 그렇지 않으면 argv[1] 디렉토리에 대해 동작 */
   else
      dir = argv[1];
   if((dp=opendir(dir)) == NULL) {   /* dir 디렉토리 열기 */
      perror("opendir failed");
      exit(1);
   }
   /* dp  디렉토리의 모든 항목들에 대한 이름을 출력.
     단, “.”으로 시작되는 항목에 대한 이름은 출력하지 않음 */
   while (dirp=readdir(dp)) {
      if (strncmp(dirp->d_name, ".", 1))
         printf("%s ", dirp->d_name);
   }
   printf("\n");
   closedir(dp);   /* dp 디렉토리 닫기 */
   exit(0);
}

      c 언어  |  2007. 9. 14. 10:00




//21_20
#include <fcntl.h>
#include <sys/types.h>
#include <unistd.h>

main(int argc, char *argv[])
{
    int fd;

    if ((fd = open(argv[1], O_WRONLY)) == -1) {
       perror("open failed");
       exit(1);
    }
    /* fd 파일을 100바이트 크기로 자름 */
    if (ftruncate(fd, 100) == -1) {
       perror("ftruncate failed");
       exit(1);
    }
    close(fd);
    exit(0);
}

      c 언어  |  2007. 9. 13. 12:52




파일 크기 바꾸기

truncate, ftruncate 함수
기능
       파일을 지정한 크기로 자른다.
기본형
       int truncate(const char *path, off_t length);
       int ftruncate(int fd, off_t length);
       path : 자르고자 하는 파일의 이름
       fd : 자르고자 하는 파일의 파일 식별자
       length : 파일의 크기
반환값
       성공 : 0
       실패 : -1
헤더 파일
       <unistd.h>

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

#include <fcntl.h>
#include <sys/types.h>
#include <unistd.h>

main(int argc, char *argv[])
{
    int fd;

    if ((fd = open(argv[1], O_WRONLY)) == -1) {
       perror("open failed");
       exit(1);
    }
    /* fd 파일을 150 바이트 크기로 만든다. 파일의 크기가 150바이트보다
     작아도 150바이트 크기가 되는데 빈 공간은 NULL로 채워진다. */
    if (ftruncate(fd, 150) == -1) {
       perror("ftruncate failed");
       exit(1);
    }
    close(fd);
    exit(0);
}
----------------------------------

      c 언어  |  2007. 9. 13. 12:43



sokoban's Blog is powered by Daum & Tattertools