Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1348 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Portage de Unix à Windows en langage C...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Portage de Unix à Windows en langage C...

n°590998
fodger
ARRRACHHEE TTAAA FFFOUUFFOUNE!
Posté le 15-12-2003 à 11:53:23  profilanswer
 

bijour,
 
Voilà je voulais savoir qu'elle expérience vous aviez sur une api écrite en c sous unix portée sous windows, genre les pt'its points qui peuvent vous pourir la vie sous l'OS de Kro$oft qui passe très bien sous unix...
 
mici.

mood
Publicité
Posté le 15-12-2003 à 11:53:23  profilanswer
 

n°591014
hellbilly
free smile
Posté le 15-12-2003 à 12:05:08  profilanswer
 

Fodger a écrit :

bijour,
 
Voilà je voulais savoir qu'elle expérience vous aviez sur une api écrite en c sous unix portée sous windows, genre les pt'its points qui peuvent vous pourir la vie sous l'OS de Kro$oft qui passe très bien sous unix...
 
mici.


Tiens bizarre moi ce sont les appels système Windows qui me pourrissent la vie sous unix. Comme quoi la vie est vraiment mal faite.

n°591072
fodger
ARRRACHHEE TTAAA FFFOUUFFOUNE!
Posté le 15-12-2003 à 13:28:19  profilanswer
 

arf... c'est sûr que tout ce qui est appel système peut être contrariant. Mais bon... il peut y avoir des problèmes plus substils?

n°591074
chrisbk
-
Posté le 15-12-2003 à 13:29:03  profilanswer
 

Fodger a écrit :

arf... c'est sûr que tout ce qui est appel système peut être contrariant. Mais bon... il peut y avoir des problèmes plus substils?


ben si tu precises pas...

n°591134
fodger
ARRRACHHEE TTAAA FFFOUUFFOUNE!
Posté le 15-12-2003 à 14:26:44  profilanswer
 

chrisbk a écrit :


ben si tu precises pas...


 
Comment veux tu que je précise, vu que je demande justement si vous connaissez des cas de figures...

n°591152
chrisbk
-
Posté le 15-12-2003 à 14:44:22  profilanswer
 

Fodger a écrit :


 
Comment veux tu que je précise, vu que je demande justement si vous connaissez des cas de figures...


 
ben si t'utilises deux printfs et 3 scanfs, non, ca devrait aller

n°591177
fodger
ARRRACHHEE TTAAA FFFOUUFFOUNE!
Posté le 15-12-2003 à 15:19:27  profilanswer
 

Nan, c'est pas le cas:p... J'ai cru comprendre apparament qu'il faut par exemple faire attention avec les déclarations de grands tableaux sous windows, il vaut mieux faire du malloc à cause de la pile.

n°591180
chrisbk
-
Posté le 15-12-2003 à 15:20:19  profilanswer
 

(la verité c'est qu'il ne me viendrait pas a l'idee de declarer des tableau de grandes tailles en local)

n°591198
gilou
Modérateur
Modzilla
Posté le 15-12-2003 à 15:47:01  profilanswer
 

Fodger a écrit :

Nan, c'est pas le cas:p... J'ai cru comprendre apparament qu'il faut par exemple faire attention avec les déclarations de grands tableaux sous windows, il vaut mieux faire du malloc à cause de la pile.  

Y'a longtemps peut etre. De nos jours, ca doit pas etre different de ce qu'on peut faire sous unix.
Et qu'appelles tu "Grande taille"?
A+,


Message édité par gilou le 15-12-2003 à 15:47:55

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°591223
fodger
ARRRACHHEE TTAAA FFFOUUFFOUNE!
Posté le 15-12-2003 à 16:32:50  profilanswer
 

gilou a écrit :

Y'a longtemps peut etre. De nos jours, ca doit pas etre different de ce qu'on peut faire sous unix.
Et qu'appelles tu "Grande taille"?
A+,


 
Genre beaucoup:D.
 
ex : char tc[30000][50]

mood
Publicité
Posté le 15-12-2003 à 16:32:50  profilanswer
 

n°591260
fodger
ARRRACHHEE TTAAA FFFOUUFFOUNE!
Posté le 15-12-2003 à 17:20:00  profilanswer
 

gilou est-ce que tu sais ce à quoi correspond le "heap size" dans l'option d'un compilo?

n°591338
gilou
Modérateur
Modzilla
Posté le 15-12-2003 à 19:18:41  profilanswer
 

Citation :

/HEAP:reserve[,commit]
The /HEAP option sets the size of the heap in bytes. This option is only for use when building an .exe file.
 
The reserve argument specifies the total heap allocation in virtual memory. The default heap size is 1 MB. The linker rounds up the specified value to the nearest 4 bytes.
 
The optional commit argument is subject to interpretation by the operating system. In Windows NT/Windows 2000, it specifies the amount of physical memory to allocate at a time. Committed virtual memory causes space to be reserved in the paging file. A higher commit value saves time when the application needs more heap space, but increases the memory requirements and possibly the startup time.
 
Specify the reserve and commit values in decimal or C-language notation.
 
This functionality is also available via a module definition file with HEAPSIZE.


Pris dans le MSDN
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°591401
fodger
ARRRACHHEE TTAAA FFFOUUFFOUNE!
Posté le 15-12-2003 à 22:37:20  profilanswer
 

Ouais j'étais tombé dessus, mais je ne suis pas tout à fait d'en avoir compris le mécanisme... tel que je l'ai compris, il s'agit d'une portion de ram réservée à la l'allocation dynamique des variables. Et si c'est 1 Mb par défaut, c'est pas de la folie:D. Le paramètre commit étant la taille d'un bloc:??:?
 
Donne moi ton pt de vue stp gilou:)...


Message édité par fodger le 15-12-2003 à 22:39:41
n°591472
gilou
Modérateur
Modzilla
Posté le 16-12-2003 à 00:01:56  profilanswer
 

Bon je ne vais parler que de Windows, et de programmes en C. Quand tu charges ton programme en memoire, l'espace qui lui est alloué sous windows est decoupé en grosso modo 4 zones:
Code, Data, Heap et Stack.
 
*********
* STACK *
*********
 |  |  |
 V  V  V
 
 ^  ^  ^
 |  |  |
*********
*  HEAP *
*********
*  DATA *
*********
*  CODE *
*********
La stack occupe l'espace en croissant vers le bas et la heap en croissant vers le haut (l'espace maximum allouable par un programme est une valeur qui est modifiable, et qui est lue par l'OS au lancement du programme. Le plus souvent, la valeur par defaut suffit).
 
Le section code contient le code du programme, la section data, la memoire statique, la heap la memoire dynamique, et la stack tout le reste, et en particulier les variables locales.
 
Donc si tu a une variable locale de type char tc[30000][50], elle sera allouee dans la stack. Si cette variable etait globale ou si elle etait static, ce serait dans la section data.
Et si c'etait  char **tc = malloc(30000*50) ce serait dans la heap.
 
Bon bien entendu, j'ai hyper simplifié:
L'ordre des sections stack heap data code est l'ordre par defaut et peut etre modifié (option /DO) les sections code et stacks peuvent etre multiples.
De plus, sous windows, en plus de la heap par defaut de son programme, il y a moyen de creer des heaps specifiques au moyen de HeapCreate()
 
 
Dans le modele unix, on a des choses +/- similaires:
une section .text (pour le code), une section .data pour la memoire statique initialisée, une section .bss pour la memoire statique non-initialisée (BSS vient de Block Started by Symbol), une section .heap et une section .stack
Si de plus, c'est du C++ et non du C, on aura eventuellement: une section .init (le startup code), une section .fini (l'exit code), une section .ctor (pour les constructeurs) et une section .dtor (pour les destructeurs)
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°591535
fodger
ARRRACHHEE TTAAA FFFOUUFFOUNE!
Posté le 16-12-2003 à 06:48:10  profilanswer
 

Ok hormis la pile j'ignorais le reste, t'aurais pas un lien sous le coude stp?
 
:jap:

n°591782
gilou
Modérateur
Modzilla
Posté le 16-12-2003 à 14:05:37  profilanswer
 

Ben cherche sous google avec stack heap data bss et tu en trouveras
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Portage de Unix à Windows en langage C...

 

Sujets relatifs
[Langage C] Existe t il une fonction de conversion entier->caractère??Comment recréer les grant tables MySQL Windows ?
compiler du c++ sous (ou pour) unix[PGSql-newbies] PostgreSql sur windows ?
[Console windows] Affichage des caractères spéciaux (accents,...)Emulateur UNIX et compilateur C
[Windows] MultitâcheTransformer [=?windows-1258?Q?S=E9bastien? =] en un truc francais
quel est le meilleur langage (2eme tour)Quel est le meilleur langage
Plus de sujets relatifs à : Portage de Unix à Windows en langage C...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR