1 #include <stdio.h>
2 #include <dirent.h>
3 #include <fcntl.h>
4 #include <unistd.h>
5 #define BUFSIZE 256
6
7 int main(int argc,char **argv)
8 {
9 char buffer[BUFSIZE];
10 ssize_t nread;
11 FILE *fp;
12 int fdin;
13
14 if(!(fp = popen("/home/khs/week5_2", "r"))){ <---여기가 문제인가본데 제가 생각하기 문제가 없어보이는데,, 그냥 여는건데,,왜??
15 printf( "Start if");
16 perror("open() error");
17 return -1;
18 }
19
20 //while((nread = read(fdin,buffer,256))>0)
21 while(fgets(buffer,BUFSIZE,fp)) {
22 printf ("while start");
23 printf("%s",buffer);
24
25 }
26 close(fdin);
27 return 0;

# 이렇게 코딩해서 실행했을때요
# sh: 1: /home/k/week: Permission denied
이런오류가 나오는데 어떻게 해결해야하는지 아시나요??

.....


#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#define BUFSIZE 256

int main()
{
char buffer[BUFSIZE];
ssize_t nread;
FILE *fp;
int fdin;

if(!(fp = fopen("/home/khs/week5_22","r"))){
printf("open error");
return -1;
}

while(fgets(buffer,BUFSIZE,fp)){
printf("%s",buffer);
}
fclose(fp);
return 0;
}

코드를 조금 수정했거든요 이제는 그 경로 거부는 안나오는데 동작을 안해요.. 의도하려는 바는 위에코드와 같아요..

이유,,,,나,,,,다른 방법이라도,.......ㅠㅠㅠㅠㅠㅠㅠ

그리고 이파일내에는


root@ubuntu:/home/khs/week5_22# ls
-g a b c ex1 ex2 ex3 ex4 main main.c main.o stdent.txt


이렇게 있어요 여기서 c만 디렉토리고 나머지는 파일이에요


3번째 수정 opendir readir 해도 왜 안되죠,,??


#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
//#include <sys/ypes.h>
#include <dirent.h>

#define BUFSIZE 256

int main()
{
char buffer[BUFSIZE];
ssize_t nread;
DIR *fp;
struct dirent *dir_entry;
int fdin;


fp = opendir("home/khs/week5_22");
if(NULL != fp){
//printf("open error");
//return -1;


while(dir_entry = readdir(fp)){
printf("%s",dir_entry->d_name);
}
closedir(fp);

}
}


댓글쓰신 님 분 덕분에 제가 잘못여는걸 알고 다시써서 오픈디렉토리로 열어도 안되네요 왜이러죠?


~
                   item = readdir(fp);                          //왜 이건 변수를 저장할 수 있는데
                path = readdir(fp);                          //추가 한 부분인 이건 왜 안되죠???
                //printf("item: ",item);
                if (item != NULL)
                        //item->path;
                        chmod(path, 777);               // path를 굳이 설정한 이유는 const char * 형태만 된다고 해서에요 path를 초기화 한 후 넣은거에요..
                if (item == NULL)
                        //printf("\n");
                        break;

~
~ 하............path = readdir(fp); 형태는 안된다고 하고...아 혹시 아는 분 있나여?
~