Ito ang command na cgmNCAG na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator
PROGRAMA:
NAME
CGM_open, CGM_close, CGM_lseek, CGM_read, CGM_write, CGM_directory, CGM_freeDirectory,
CGM_printDirectory, CGM_getInstr, CGM_flushGetInstr, CGM_putInstr, CGM_flushOutputInstr,
CGM_initMetaEdit, CGM_termMetaEdit, CGM_copyFrames, CGM_deleteFrames, CGM_mergeFrames
CGM_moveFrames, CGM_readFrames, CGM_valid, CGM_writeFile, CGM_writeFrames,
CGM_appendFrames - Mga pagpapatakbo ng Computer Graphics Metafile
SINTAX
# isama
Cgm_fd CGM_open(metafile, laki, mga watawat, fashion)
tangke *metafile;
hindi naka -ignign laki;
int mga watawat;
int mode;
int CGM_close(cgm_fd)
Cgm_fd cgm_fd;
int CGM_lseek(cgm_fd, offset)
Cgm_fd cgm_fd;
int offset;
int CGM_read(cgm_fd, buf)
Cgm_fd cgm_fd;
hindi naka -ignign tangke *buf;
int CGM_write(cgm_fd, buf)
Cgm_fd cgm_fd;
hindi naka -ignign tangke *buf;
Directory *CGM_directory(cgm_fd)
Cgm_fd cgm_fd;
walang bisa CGM_freeDirectory(dir)
Directory *dir;
walang bisa CGM_printDirectory(dir)
Directory *dir;
int CGM_getInstr(cgm_fd, instr)
Cgm_fd cgm_fd;
Mga instrumento *instr;
walang bisa CGM_flushGetInstr(cgm_fd)
Cgm_fd cgm_fd;
int CGM_putInstr(cgm_fd, instr)
Cgm_fd cgm_fd;
Mga instrumento *instr;
int CGM_flushOutputInstr(cgm_fd)
Cgm_fd cgm_fd;
Directory *CGM_initMetaEdit (metafile, laki)
tangke *metafile;
hindi naka -ignign int laki;
int CGM_termMetaEdit()
Directory *CGM_copyFrames(simula, bilang, target )
hindi naka -ignign int simulan;
int num;
hindi naka -ignign int target;
Directory *CGM_deleteFrames(simula, num)
hindi naka -ignign int magsimula,
num;
Directory *CGM_mergeFrames(ibaba, tuktok)
hindi naka -ignign ilalim, tuktok;
Directory *CGM_moveFrames (simula, bilang, target)
hindi naka -ignign int magsimula, bilang, target;
Directory *CGM_readFrames(metafile, magsimula, bilang, target, laki)
tangke *metafile;
hindi naka -ignign int simulan;
int num;
hindi naka -ignign int target, laki;
int *CGM_validCGM(metafile)
tangke *metafile;
int CGM_writeFile(metafile)
tangke *metafile;
int CGM_writeFrames(metafile, magsimula, num)
tangke *metafile;
hindi naka -ignign magsimula, num;
int CGM_appendFrames(metafile, magsimula, num)
tangke *metafile;
hindi naka -ignign magsimula, num;
DESCRIPTION
Ang argumento cgm_fd ay tumutukoy sa isang wastong file descriptor na nilikha para sa pagbabasa o pagsulat, bilang
angkop sa pamamagitan ng CGM_open. CGM_read, CGM_directory, CGM_getInstr at CGM_flushGetInstr
nangangailangan ng isang file descriptor na bukas para sa pagbabasa. CGM_write, CGM_getInstr,CGM_flushGetInstr at
CGM_flushOutputInstr nangangailangan ng a Cgm_fd bukas para sa pagsusulat. CGM_close at CGM_lseek habilin
tanggapin ang anumang valid Cgm_fd.
Ang laki ang argumento ay tumutukoy sa laki ng tala ng CGM sa mga byte. Para sa isang NCAR CGM ang halagang ito ay
1440.
buf ay isang pointer sa memorya na inilaan ng gumagamit ng laki laki. Ang storage na ito ay gagamitin para sa
buffering input at output ng CGM_read at CGM_write ayon sa pagkakabanggit.
Ang dir argumento ay isang pointer sa a Directory istrukturang nilikha gamit ang CGM_directory or
CGM_initMetaEdit. dir ay isang pribadong mapagkukunan na dapat HINDI direktang binago ng
gumagamit. Isang set ng convenience macros ang ibinigay para sa layuning ito sa cgm_tools.h.
Ang simula, num at target Ang mga argumento ay ginagamit upang matugunan ang mga numero ng frame sa isang metafile na nilalang
na-edit gamit ang isa sa mga utos: CGM_copyFrames, CGM_deleteFrames, CGM_readFrames,
CGM_moveFrames, CGM_writeFrames at CGM_mergeFrames. ang simula argumento ang una
frame sa isang pagkakasunod-sunod ng num (mga) frame upang isagawa ang operasyon sa pag-edit. target ay katulad
sa simula at ginagamit ng mga command na nangangailangan ng dalawang frame address tulad ng kopyahin. Pag-address
nagsisimula sa zero.
CGM_open
Ang utos na ito ay na-modelo pagkatapos ng unix buksan utos. Magbubukas ito ng CGM para sa pagbabasa
o pagsulat ayon sa tinukoy ng flag argumento at ibalik a Cgm_fd deskriptor ng file.
Ang flag at buksan Ang mga parameter ay direktang ipinapasa sa system buksan utos.
Para sa isang detalyadong paliwanag ng dalawang argumentong ito tingnan buksanNa (2).
CGM_close
Tanggalin ang isang file descriptor. Ang kabaligtaran ng CGM_open. Tingnan malapitNa (2).
CGM_read
CGM_read pagtatangka na basahin laki bytes mula sa bagay na isinangguni sa pamamagitan ng
deskriptor cgm_fd. laki ay nakatakda sa paglikha ng cgm_fd by CGM_open. CGM_read
ibinabalik ang bilang ng mga byte na matagumpay na nabasa. Isang zero ang ibinalik sa EOF at a
Ang negatibong numero ay nagpapahiwatig ng isang error na naganap. Ang unix system call basahin ay tinatawag ng
CGM_read. Tingnan basahinNa (2).
CGM_write
Mga pagtatangka na magsulat ng isang tala ng laki bytes mula sa buf mula sa bagay na tinutukoy
by cgm_edit saan laki ay ang parameter ng laki ng tala na ibinigay sa paggawa ng
cgm_fd. magsulat ibinabalik ang bilang ng mga byte na matagumpay na naisulat. Isang negatibong pagbabalik
numero ay nagpapahiwatig ng isang error na naganap. Ang unix system call magsulat ay tinatawag ng
CGM_write. Tingnan magsulatNa (2).
CGM_lseek
Isulong ang file pointer ng cgm_fd sa ginalaw byte. Sa matagumpay na pagkumpleto ng
ibinalik ang kasalukuyang file pointer offset. Ang negatibong return value ay isang error. Ang
unix system call hanapin ko ay tinatawag ng CGM_lseek. Tingnan hanapin koNa (2).
CGM_directory
Gumawa ng talaan ng mga nilalaman para sa metafile na tinukoy ni cgm_fd. Magbalik ng pointer
sa ganitong uri ng talahanayan Directory. Kasama sa mga nilalaman ng direktoryo ang bilang ng
metafiles, bilang ng mga frame, record offset para sa bawat frame, haba ng frame sa mga record,
opsyonal na paglalarawan ng frame at katayuan ng metafile. Ang mga patlang na ito ay sinadya upang basahin
lamang at dapat na i-reference lamang ng mga convenience macro na ibinigay sa
cgm_tools.h. Ang isang NULL pointer ay ibinalik sa pagkabigo.
CGM_freeDirectory
Libreng memorya na inilaan sa isang direktoryo na ginawa ni CGM_directory or CGM_initMetaEdit.
CGM_printDirectory
I-print ang mga nilalaman ng isang direktoryo na itinuro ni dir sa karaniwang output.
CGM_getInstr,
Kunin ang susunod na pagtuturo sa file na tinukoy ni cgm_edit at i-convert ito sa a
magagamit na format na itinuro ng instr. CGM_getInstr nagbibigay ng interface sa
metafile para sa pagkuha ng mga elemento ng CGM. Ang gumagamit ay hindi kailangang mag-alala sa
binary na format ng metafile. Ang mga patlang ng Mga instrumento ay tulad ng inilarawan sa
cgm_tools.h. Dapat tandaan ng user na ibinalik ang maximum na pinapayagang haba ng data
sa iisang invocation ay 32760 bytes. Ang pamantayan ng CGM ay nagbibigay-daan sa hanggang 32767 bytes sa
maiimbak sa isang pagtuturo. Ngunit ang 32767 ay hindi magandang numero para magtrabaho.
Kung ang haba ng data ng isang pagtuturo ng CGM ay lumampas sa 32760 bytes, na ipinapahiwatig ng
boolean mas marami pang bandila, ang susunod na panawagan ng CGM_getInstr ibabalik ang natitira
data hanggang sa parehong limitasyon, atbp. CGMgetInstr nangangailangan ng valid Cgm_fd buksan para sa
pagbabasa. Para sa isang paglalarawan sa CGM tingnan ang pamantayan ng ANSI.
CGM_flushGetInstr
I-flush ang input buffer na ginamit ni CGM_getInstr. CGM_getInstr buffer ang mga nilalaman ng
ang CGM at nagsasagawa lamang ng mga aktwal na pagbabasa kung kinakailangan. Kung ang gumagamit ay nagnanais ng iba pagkatapos
sequential read access sa isang CGM nagiging kinakailangan upang i-flush ang input buffer
bago magbasa mula sa isang bagong lokasyon.
CGM_putInstr
Ang analog sa CGM_getInstr. Bina-buffer ng function na ito ang mga tagubilin sa CGM na susulatan
isang CGM na tinukoy ni cgm_fd. Muli ang gumagamit ay hindi kailangang mag-alala sa binary
format ng file. Ang mga pagsusulat ay isinagawa nang sunud-sunod sa laki ng talaan laki as
tinukoy sa panahon ng paglikha ng cgm_fd. Ang parehong mga hadlang sa haba ng data ay
inilagay sa CGM_getInstr hawakan para sa CGM_putInstr. Kung gusto ng user na mag-output
mga tagubilin na may haba ng data na higit sa 32760 bytes kung gayon ang data ay dapat na
pinaghiwa-hiwalay sa mga bloke na hindi hihigit sa sukat na ito. Dapat ding itakda ng user ang boolean
mas marami pang bandila sa Mga instrumento. cgm_fd dapat ay isang wastong file descriptor na bukas para sa pagsusulat.
Para sa isang paglalarawan ng mga patlang ng Mga instrumento tingnan ang file cgm_tools.h.
CGM_flushOutputInstr
I-flush ang output buffer na ginamit ni CGM_putInstr para sa file na tinukoy ni cgm_fd. Ito
ay kinakailangan upang tahasang i-flush ang output buffer na ginagamit ng CGM_putInstr bago ang
file ay sarado o anumang random na pag-access ay ginanap. Kung hindi, hindi lahat ng elemento ng CGM
talagang maisusulat.
CGM_initMetaEdit
Magsimula ng metafile para sa pag-edit. Ito ay ang initialization routine para sa
mas mataas na antas ng mga gawain sa pag-edit na nasa package na ito: CGM_copyFrames,
CGM_deleteFrames, CGM_readFrames, CGM_moveFrames, CGM_writeFile, CGM_writeFrames,
at CGM_mergeFrames. Gumagana lamang ang mga gawaing ito sa isang metafile sa isang pagkakataon (ang isa
pinangalanan sa CGM_initMetaEdit. Invoking this routine for a second time without
ang tahasang pag-save ng anumang mga pagbabago ay magkakaroon ng epekto ng paglo-load ng bagong file at
itinatapon ang lahat ng mga pagbabagong ginawa sa nakaraang file. CGM_initMetaEdit at lahat
nagpapatuloy sa pag-edit ng mga function na gumawa ang mga pagbabago sa file ay nagbabalik ng isang pointer sa a
Directory bilang isang kaginhawaan na nagbibigay-daan sa gumagamit na suriin ang estado ng file.
Ang mga nilalaman ng direktoryo ay pribado at HINDI dapat baguhin ng gumagamit. A
set ng mga macro ay ibinigay sa cgm_tools.h na gagamitin para sa pagkuha ng direktoryo
nilalaman. nota: walang aktwal na pagbabagong ginawa sa edit file maliban kung ito ay
tahasang na-overwrite ng alinman CGM_writeFile or CGM_writeFrames.
CGM_termMetaEdit
Tapusin ang session ng pag-edit na sinimulan CGM_initMetaEdit. Ang ganitong gawain ay dapat
tatawagin pagkatapos ma-save ang anumang mga pagbabago sa pag-edit, kung nais na i-save ang mga ito, at
bago lumabas sa session ng pag-edit. CGM_termMetaEdit nagpapalaya ng mahahalagang mapagkukunan.
CGM_copyFrames
Kopyahin num mga frame na nagsisimula sa simula sa frame na tinutugunan ng target. Kung target is
okupado na pagkatapos ay ipinasok ang mga frame ng pinagmulan sa lugar nito habang ang target
frame, at lahat ng nagpapatuloy na frame, ay advanced. CGM_copy gumagana sa file
sinimulan ni CGM_initMetaEdit (ang pag-edit ng file). Sa matagumpay na pagkumpleto ng isang pointer
sa kasalukuyang direktoryo ay ibinalik. Sa error isang NULL pointer ay ibinalik.
CGM_deleteFrames
alisin num mga frame mula sa edit file na nagsisimula sa frame simula. Sa matagumpay
pagkumpleto ng isang pointer sa kasalukuyang direktoryo ay ibinalik. Sa error isang NULL pointer
ay ibinalik.
CGM_mergeFrames
I-overwrite ang mga nilalaman ng frame na tinutugunan ilalim na may unyon ng frame sa
lugar ilalim at ang frame sa lokasyon tuktok. Ang epekto ng utos na ito ay
katumbas ng pagguhit ng tuktok frame sa ibabaw ng ilalim kuwadro. Ito ay hindi isang unyon
sa tunay na kahulugan ng salita. Sa matagumpay na pagkumpleto ng isang pointer sa kasalukuyang
ibinalik ang direktoryo. Sa error isang NULL pointer ay ibinalik.
CGM_moveFrames
Ilipat ang isang bloke ng num mga frame mula sa edit file na nagsisimula sa frame simula sa
posisyon na inookupahan ng frame target Sa matagumpay na pagkumpleto ng isang pointer sa kasalukuyang
ibinalik ang direktoryo. Sa error isang NULL pointer ay ibinalik.
CGM_readFrames
Basahin num mga frame mula sa metafile file nagsisimula sa frame simula. Ipasok ang mga frame sa
tirahan target sa edit file. Sa matagumpay na pagkumpleto ng isang pointer sa kasalukuyang
ibinalik ang direktoryo. Sa error isang NULL pointer ay ibinalik.
CGM_validCGM
Tukuyin kung ang isang file ay wastong NCAR CGM o hindi. Ang function na ito ay gumaganap ng ilang
mga simpleng diagnostic sa pagsisikap na matukoy kung ang isang naibigay na file ay nasa NCAR
CGM na format. Ang mga pagsusulit na isinagawa ay hindi mahigpit at ito ay naiisip na ang
hindi tama ang nakuhang impormasyon. Ang pagbabalik ng 1 ay nagpapahiwatig ng isang wastong NCAR CGM. A
Ang pagbabalik ng 0 ay nagpapahiwatig na ang file ay hindi isang NCAR CGM. Ang pagbabalik ng -1 ay nagpapahiwatig ng isang error
naganap at ang pandaigdigang variable na `errno' ay itinakda nang naaayon.
CGM_writeFile
Isulat ang buong nilalaman ng kasalukuyang edit file sa file. CGM_writeFile Babalik
ang integer sa tagumpay at isang negatibong numero sa kabiguan.
CGM_writeFrames
Sumulat ng isang bloke ng num mga frame na nagsisimula sa frame simula sa file. Ang pinagmulan ng mga frame
nanggaling sa edit file. Tandaan: Ang mga CGM frame ay nakapaloob sa isang wrapper na binubuo ng
CGM limitahan mga elemento. Ang file na ginawa ni CGM_writeFrames gagamitin ang wrapper
ibinigay ng kasalukuyang file sa pag-edit. Kaya kung ang isang file foo naglalaman ng n mga frame na
basahin sa isang sesyon ng pag-edit na may isang file goo at pagkatapos ay ang parehong mga frame ay nakasulat
sa isang file mag-zoom, mag-zoom maaaring pareho o hindi sa orihinal foo.
CGM_writeFrames ibinabalik ang integer isa sa tagumpay at isang negatibong numero sa
kabiguan.
CGM_appendFrames
Magdagdag ng isang bloke ng num mga frame na nagsisimula sa frame simula sa file. file dapat na
umiiral at maging isang wastong NCAR CGM. CGM_appendFrames ibinabalik ang integer one sa tagumpay
at isang negatibong numero sa pagkabigo.
Gamitin ang cgmNCARG online gamit ang mga serbisyo ng onworks.net