영어가 모국어가 아닌 이유로 사과하고 싶습니다. 제 모국어가 아닙니다.stdout에서 읽고 문자열을 얻으십시오
그래서 제 질문은 여기에 있습니다. C 언어로 내 stdout에서 읽고 어떤 내용이든 *char
으로 바꾸는 방법이 있습니까? 읽기, 쓰기, malloc 및 free 함수 만 사용할 수 있습니다.
내 실제 코드는이
char* acquire_shape()
{
char *buffer[BUF_SIZE + 1];
int ret;
ret = read(0, buffer, BUF_SIZE)
buffer[ret] = '\0';
return *buffer;
}
처럼 보이지만 나는 문자열로 그것을 얻을 수 없습니다.
char* acquire_shape(int fd) {
char *buffer = malloc(BUF_SIZE + 1);
int ret;
if (buffer == NULL)
return NULL;
ret = read(fd, buffer, BUF_SIZE);
buffer[ret] = '\0';
return buffer;
}
이것은 문자열이 아닙니다. 그것의 포인터 배열. 일반적으로'char buffer [BUF_SIZE + 1];을 사용합니다. 동적 할당이 필요할 것 같습니다. 왜냐하면 * 어딘가에서 이것을 반환하기 때문입니다. 그리고 귀하의 디스크립터를 하드 코딩 하시겠습니까? 나쁜 생각. – WhozCraig
하드 코딩 설명자에서 그 부분을 얻지 못했습니다. 무슨 소리 야? – zubergu