fprintf(stderr)
을 신호 (SIGALRM) 핸들러에서 glibc/linux와 함께 사용할 수 있습니까?linux/glibc. 신호 처리기에서 fprintf를 사용할 수 있습니까?
2
A
답변
6
아니요. 비동기 신호 안전 기능 목록은 맨 페이지 signal(7)을 확인하십시오. fprintf
은 해당 목록에 포함되어 있지 않습니다.
서식이 필요하지 않은 경우 write(STDERR_FILENO, <buf>, <buflen>)
을 사용하여 stderr에 쓸 수 있습니다.
4
이 안전하지 않다, 인용 IBM developerWorks 기사 약 Signal Handling Safety
신호 처리기 fprintf와 함께 메시지를 출력하고, 프로그램은 동일한 스트림을 사용 fprintf와 호출의 중간에 있던 가정 신호가 전달되었을 때 . 신호 처리기의 메시지와 프로그램의 데이터는 모두 손상 될 수 있습니다. 두 호출이 동일한 데이터 구조 즉 스트림 자체에서 작동하기 때문입니다.
관련 문제
- 1. 이벤트 처리기에서 wxMutex를 사용할 수 있습니까?
- 2. PHP의 신호 처리기에서 tty를 호출하는 사람
- 3. 주 처리기에서 신호 처리기가 호출되지 않습니다.
- 4. 장고에서 신호 처리기에서 세션을 얻는 방법
- 5. 신호 처리기에서 저장된 명령어 포인터 주소 받기
- 6. fprintf를 사용하여 메모리 스트림
- 7. fprintf를 사용한 문제
- 8. 신호 처리기에서 FPU 컨텍스트를 변경하는 방법 (C++/Linux)
- 9. 이벤트 처리기에서 값을 반환 할 수 있습니까?
- 10. SharePoint : ItemAdding() 이벤트 처리기에서 문서의 내용을 볼 수 있습니까?
- 11. error_logger 처리기에서 오류의 스택 추적을 가져올 수 있습니까?
- 12. express.js 처리기에서 HTTPS를 사용하고 있는지 확인할 수 있습니까?
- 13. Perl 처리기에서 Apache ErrorDocument를 어떻게 바꿀 수 있습니까?
- 14. ASP.NET 페이지 이벤트 처리기에서 다른 컨트롤을 변경할 수 있습니까?
- 15. MethodInvoking 이벤트 처리기에서 워크 플로 작업을 취소 할 수 있습니까?
- 16. BackgroundWorker의 DoWork 처리기에서 이벤트를 직접 실행할 수 있습니까?
- 17. Weblogic 기본 처리기에서 컨텍스트 목록을 표시 할 수 있습니까? 부두에서
- 18. 신호 수신 신호 SIGIO
- 19. 을 사용할 수 있습니까?
- 20. 타이머를 사용할 수 있습니까?
- 21. alcheMo를 사용할 수 있습니까?
- 22. jquery를 사용할 수 있습니까?
- 23. TestContext.Properties를 사용할 수 있습니까?
- 24. 을 사용할 수 있습니까?
- 25. pushState를 사용할 수 있습니까?
- 26. killProcess를 사용할 수 있습니까?
- 27. Auto_publish를 사용할 수 있습니까?
- 28. MFC - 종단 처리기에서
- 29. 기본 신호 처리기를 실행
- 30. Graphics.DrawImage를 사용할 때 HTTP 처리기에서 이미지의 투명도를 유지하려면 어떻게해야합니까?
libc의 함수 목록 또는 커널 syscalls 목록입니까? – osgx
http://linux.die.net/man/7/signal 목록이 없습니다. 나에게 링크를 줄 수 있니? – osgx
@osgx : 링크가 답변에 추가되었습니다. 이것은 libc 표준을 포함하는 posix 함수 목록입니다. 그러나 libc 표준은 signal()을 제외한 libc 함수가 재진입 적이라는 것을 요구하지 않으므로 신호 처리기 내에서 libc 함수를 사용할 수 없습니다. – Fabian