MinGW로 시스템 프로그래밍 할때 어떻게 하는지....

korisaram의 이미지

c언어를 사용하고 컴파일러가 MinGW인데요( devc++를 이용)
제가 궁금한것은 쓰레드를 이용할때는 어떻게 사용하는지 모르겠습니다. visual studio에서는 multi threading dll 선택하고 #include <process.h> #include <windows.h> _beginthreadx 함수를 이용해서 쓰레드 안전한 함수들을 사용하는데요. MingGW는 gcc를 포터한거라서 posix 쓰레드를 사용하는건지? 아님 윈도프로그래밍 처럼 _beginthreadx를 사용하는건지 _beginthreadx사용한다면 multi threading dll을 어떻게 선택하는지를 모르겠습니다.

c로 tcp/ip로 서버/클라이언트만들때도 MinGW사용하면 유닉스방식으로 서버/클라이언트를 만들수가 있나요? 아 fork,pipe등은 물론 윈도에서 안되겠지만 ...

예를 들어 윈도는 #include <winsock2.h>를 이용하고 WSA로 시작하는 함수들 사용하는데 MinGW는 유닉스 스타일로 가능한건지 아님 윈도스타일로 하는건지 이것도 잘 모르겠습니다.

ktd2004의 이미지

일단 정확한 답변은 아닙니다만 도움이 되면 좋겠습니다.

리눅스에서 멀티 쓰레드 프로그래밍은 다음과 같이 하면 됩니다.
1. pthread_xxx 계열의 함수를 사용
2. 컴파일할 때 _REENTRANT를 정의하면 VC에서 MultiThread dll을 지정해준것 같이 컴파일되는 것으로 알고 있습니다.

elecguy의 이미지

mingw 위키페이지를 참조하세요.
FAQ 등을 참고하면 원하는 답을 얻을 수 있습니다.
http://www.mingw.org/MinGWiki/

폐인, 노가다 그 끝은..?

puaxx의 이미지

너무 IDE에 익숙해 지신 탓일듯..

둘다 win32용 컴파일러와 관련라이브러리들을 내장 또는 가지고 있기 때문에..

당연히 _beginthread,CreateThread 쓸수 있습니다...

그리고 네트워크 프로그래밍 할때도 굳이 윈도우즈 소켓 래퍼함수를 사용하진 않아도 되고,유닉스에서처럼과 거의 흡사하게 만들수 있습니다.

얼른 MSDN 뒤적거려서 찾아보세요.

korisaram의 이미지

조언해 주신 분들 감사합니다.
이제껏 minGW에서 ansi함수들만 사용하다 시스템 프로그래밍을 할려니깐 이게 유닉스방식인가? 윈도 방식인가? 많이 고민했는데 실마리가 보이네요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.