ptsname()
으로 전화하면 char*
이 나옵니다.ptsname()의 결과를 비워야합니까?
맨 페이지가 링크, 소유권 또는 수명을 지정하지 않았지만 valgrind가 누출을 일으키는 것으로 표시하고 있습니다 (--leak-check=full
). 나는 보통 명사에 붙여서의 뜻을 나타냄 malloc
얻을 결과를 -ing free()
에 따라
==46958== 128 bytes in 1 blocks are definitely lost in loss record 41 of 65
==46958== at 0x10010FEBB: malloc (in /usr/local/Cellar/valgrind/3.11.0/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==46958== by 0x1003F9682: ptsname (in /usr/lib/system/libsystem_c.dylib)
==46958== by 0x10001BA5F: startJob(childproc*) (unix-base.cc:211)
==46958== by 0x100019CAB: stepChild(childproc*, std::__1::function<bin::Job* (bin::Job*)>) (unix-base.cc:281)
==46958== by 0x100018F2C: bin::runJobs(std::__1::function<bin::Job* (bin::Job*)>, int) (unix-base.cc:350)
==46958== by 0x1000027FC: pmain() (bin.cc:65)
==46958== by 0x100003787: main (bin.cc:90)
는 '오류 D :
bin(46690,0x7fff76531000) malloc: *** error for object 0x7fb35af00f90: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
./bootstrap.sh: line 41: 46690 Abort trap: 6 bin/bin
이 플랫폼에서 ptsname()
의 내부 구현이 단지 누설인가, 또는해야 나는 (어떻게 든) 결과를 자유롭게 할 수 있습니까?
'ptsnmame'은 정적 저장소를 반환하므로 reentrent 버전'ptsname_r'을 사용해보십시오. – fluter