本文整理汇总了C++中sopen函数的典型用法代码示例。如果您正苦于以下问题:C++ sopen函数的具体用法?C++ sopen怎么用?C++ sopen使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了sopen函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: sopen
USHORT TUser::Previous ()
{
USHORT RetVal = FALSE;
if (fdDat == -1)
fdDat = sopen (DatFile, O_RDWR|O_BINARY|O_CREAT, SH_DENYNO, S_IREAD|S_IWRITE);
if (fdIdx == -1)
fdIdx = sopen (IdxFile, O_RDWR|O_BINARY|O_CREAT, SH_DENYNO, S_IREAD|S_IWRITE);
if (fdDat != -1 && fdIdx != -1 && (tell (fdIdx) - sizeof (Idx)) >= sizeof (Idx)) {
do {
lseek (fdIdx, tell (fdIdx) - sizeof (Idx) * 2, SEEK_SET);
if (read (fdIdx, &Idx, sizeof (Idx)) == sizeof (Idx)) {
if (Idx.Deleted == FALSE)
RetVal = TRUE;
}
} while (RetVal == FALSE && tell (fdIdx) >= sizeof (Idx) * 2);
if (RetVal == TRUE) {
Clear ();
lseek (fdDat, Idx.Position, SEEK_SET);
read (fdDat, &Usr, sizeof (Usr));
Struct2Class ();
}
}
return (RetVal);
}
示例2: main
int main(int argc, char *argv[])
{
/* check args */
if (argc != 4)
{
fprintf(stderr, "usage: %s header.asm prog1.bfjoust prog2.bfjoust\n", argv[0]);
return 1;
}
/* parse competitors */
int fdA = sopen(argv[2]), fdB = sopen(argv[3]);
if (setjmp(fail_buf))
{
printf("parse error: %s\n", fail_msg);
return 1;
}
struct oplist *opsA = parse(fdA), *opsB = parse(fdB);
/* find maximum depth of nested repeats */
int maxrepdepth;
{
int d1 = repdepth(opsA), d2 = repdepth(opsB);
maxrepdepth = d1 > d2 ? d1 : d2;
}
printf("%%define MAXREPS %d\n\n", maxrepdepth);
/* copy header */
FILE *hdr = fopen(argv[1], "r");
if (!hdr)
die("open failed: %s", argv[1]);
static unsigned char buf[4096];
ssize_t got;
while ((got = fread(buf, 1, sizeof buf, hdr)) > 0)
fwrite(buf, 1, got, stdout);
if (got < 0)
die("read error");
fclose(hdr);
/* translate into code */
compile(stdout, opsA, 'A', "pa", 0);
compile(stdout, opsB, 'B', "pb", 0);
compile(stdout, opsB, 'B', "pf", 1);
opl_free(opsA);
opl_free(opsB);
return 0;
}
示例3: strcpy
USHORT TFileBase::Open (PSZ pszDataPath, PSZ pszArea)
{
CHAR szFile[128];
strcpy (DataPath, pszDataPath);
if (DataPath[0] != '\0') {
#if defined(__LINUX__)
if (DataPath[strlen (DataPath) - 1] != '/')
strcat (DataPath, "/");
#else
if (DataPath[strlen (DataPath) - 1] != '\\')
strcat (DataPath, "\\");
#endif
}
sprintf (szFile, "%s%s", DataPath, "filebase.idx");
if ((fdIdx = sopen (AdjustPath (szFile), O_RDWR|O_BINARY|O_CREAT, SH_DENYNO, S_IREAD|S_IWRITE)) == -1)
return (FALSE);
sprintf (szFile, "%s%s", DataPath, "filebase.dat");
if ((fdDat = sopen (AdjustPath (szFile), O_RDWR|O_BINARY|O_CREAT, SH_DENYNO, S_IREAD|S_IWRITE)) == -1) {
close (fdDat);
fdDat = -1;
return (FALSE);
}
strcpy (szArea, pszArea);
return (TRUE);
}
示例4: lightPen
void CLayout::CSizeGripper::DrawShadowLine(CDC *pdc, CPoint start, CPoint end)
{
{
CPen lightPen(PS_SOLID, 1, ::GetSysColor(COLOR_3DHIGHLIGHT));
CSelectObject sopen(pdc, &lightPen);
pdc->MoveTo(start);
pdc->LineTo(end);
}
start.x++;
end.y++;
{
CPen darkPen(PS_SOLID, 1, ::GetSysColor(COLOR_3DSHADOW));
CSelectObject sopen(pdc, &darkPen);
pdc->MoveTo(start);
pdc->LineTo(end);
start.x++;
end.y++;
pdc->MoveTo(start);
pdc->LineTo(end);
}
}
示例5: removefiledat
BOOL DLLCALL removefiledat(scfg_t* cfg, file_t* f)
{
char c,str[MAX_PATH+1],ixbname[12],*ixbbuf,fname[13];
int i,file;
long l,length;
SAFECOPY(fname,f->name);
for(i=8;i<12;i++) /* Turn FILENAME.EXT into FILENAMEEXT */
fname[i]=fname[i+1];
SAFEPRINTF2(str,"%s%s.ixb",cfg->dir[f->dir]->data_dir,cfg->dir[f->dir]->code);
if((file=sopen(str,O_RDONLY|O_BINARY,SH_DENYWR))==-1) {
return(FALSE);
}
length=(long)filelength(file);
if(!length) {
close(file);
return(FALSE);
}
if((ixbbuf=(char *)malloc(length))==0) {
close(file);
return(FALSE);
}
if(lread(file,ixbbuf,length)!=length) {
close(file);
free((char *)ixbbuf);
return(FALSE);
}
close(file);
if((file=sopen(str,O_WRONLY|O_TRUNC|O_BINARY,SH_DENYRW))==-1) {
return(FALSE);
}
for(l=0;l<length;l+=F_IXBSIZE) {
for(i=0;i<11;i++)
ixbname[i]=ixbbuf[l+i];
ixbname[i]=0;
if(stricmp(ixbname,fname))
if(lwrite(file,&ixbbuf[l],F_IXBSIZE)!=F_IXBSIZE) {
close(file);
free((char *)ixbbuf);
return(FALSE);
}
}
free((char *)ixbbuf);
close(file);
SAFEPRINTF2(str,"%s%s.dat",cfg->dir[f->dir]->data_dir,cfg->dir[f->dir]->code);
if((file=sopen(str,O_WRONLY|O_BINARY,SH_DENYRW))==-1) {
return(FALSE);
}
lseek(file,f->datoffset,SEEK_SET);
c=ETX; /* If first char of record is ETX, record is unused */
if(write(file,&c,1)!=1) { /* So write a D_T on the first byte of the record */
close(file);
return(FALSE);
}
close(file);
if(f->dir==cfg->user_dir) /* remove file from index */
rmuserxfers(cfg,0,0,f->name);
return(TRUE);
}
示例6: sopen_test_thread
static void sopen_test_thread(void* arg)
{
int fd;
if((fd=sopen(LOCK_FNAME,O_RDWR,SH_DENYWR))!=-1)
printf("!FAILURE: allowed to reopen with SH_DENYWR\n");
else if((fd=sopen(LOCK_FNAME,O_RDWR,SH_DENYRW))!=-1)
printf("!FAILURE: allowed to reopen with SH_DENYRW\n");
else
printf("reopen disallowed\n");
if(fd!=-1)
close(fd);
}
示例7: sopen
VOID TProtocol::Delete ()
{
int fdNew;
USHORT DoClose = FALSE;
ULONG Position;
if (fdDat == -1) {
fdDat = sopen (DataFile, O_RDWR|O_BINARY|O_CREAT, SH_DENYNO, S_IREAD|S_IWRITE);
DoClose = TRUE;
}
fdNew = sopen ("temp.dat", O_RDWR|O_BINARY|O_CREAT, SH_DENYNO, S_IREAD|S_IWRITE);
if (fdDat != -1 && fdNew != -1) {
if ((Position = tell (fdDat)) > 0L)
Position -= sizeof (PROTOCOL);
lseek (fdDat, 0L, SEEK_SET);
while (read (fdDat, &prot, sizeof (PROTOCOL)) == sizeof (PROTOCOL)) {
if (strcmp (Key, prot.Key))
write (fdNew, &prot, sizeof (PROTOCOL));
}
lseek (fdDat, 0L, SEEK_SET);
lseek (fdNew, 0L, SEEK_SET);
while (read (fdNew, &prot, sizeof (PROTOCOL)) == sizeof (PROTOCOL))
write (fdDat, &prot, sizeof (PROTOCOL));
chsize (fdDat, tell (fdDat));
lseek (fdDat, Position, SEEK_SET);
if (Next () == FALSE) {
if (Previous () == FALSE)
New ();
}
}
if (fdNew != -1) {
close (fdNew);
unlink ("temp.dat");
}
if (fdDat != -1 && DoClose == TRUE) {
close (fdDat);
fdDat = -1;
}
}
示例8: open_gamedab
void open_gamedab()
{
if((gamedab=sopen("game.dab",O_RDWR|O_BINARY,SH_DENYNO))==-1) {
bputs("Error opening game.dab\r\n"); /* open deny none */
pause();
exit(1); }
}
示例9: GetGripperRect
void CXySlider::PaintGripper(CDC *pdc)
{
CRect rc = GetGripperRect();
COLORREF color = ::GetSysColor(COLOR_BTNFACE);
if(m_gripperHighlight)
{
int r = RGB_GET_RVALUE(color);
int g = RGB_GET_GVALUE(color);
int b = RGB_GET_BVALUE(color);
r += (255 - r)/3;
g += (255 - g)/3;
b += (255 - b)/3;
color = RGB(r, g, b);
}
pdc->FillSolidRect(rc, color);
pdc->DrawEdge(rc, EDGE_RAISED, BF_RECT);
CPen pen(PS_SOLID, 1, ::GetSysColor(COLOR_3DSHADOW));
CSelectObject sopen(pdc, &pen);
pdc->MoveTo(rc.left, rc.top + rc.Height() / 2);
pdc->LineTo(rc.right, rc.top + rc.Height() / 2);
pdc->MoveTo(rc.left + rc.Width() / 2, rc.top);
pdc->LineTo(rc.left + rc.Width() / 2, rc.bottom);
}
示例10: RGB
void CXySlider::PaintBackground(CDC *pdc)
{
pdc->FillSolidRect(m_rcAll, ::GetSysColor(COLOR_BTNFACE));
CRect rc = m_rcInner;
pdc->DrawEdge(rc, EDGE_SUNKEN, BF_RECT | BF_ADJUST);
pdc->FillSolidRect(rc, RGB(255,255,255));
CPen pen(PS_SOLID, 1, ::GetSysColor(COLOR_3DLIGHT));
CSelectObject sopen(pdc, &pen);
pdc->MoveTo(rc.left, m_zero.y);
pdc->LineTo(rc.right, m_zero.y);
pdc->MoveTo(m_zero.x, rc.top);
pdc->LineTo(m_zero.x, rc.bottom);
CRect circle = m_rcAll;
circle.DeflateRect(m_gripperRadius);
CSelectStockObject sobrush(pdc, NULL_BRUSH);
pdc->Ellipse(circle);
if(GetFocus() == this)
{
pdc->DrawFocusRect(m_rcAll);
}
}
示例11: main
int main(void)
{
FILE *fout;
int i, fserial;
fout = fopen("rom56.bin", "w");
if (fout == NULL)
{
fprintf(stderr, "can't open rom56.bin for writing\n");
exit(1);
}
fserial = sopen("/dev/ttyS0", B19200);
if (fserial == -1)
{
fprintf(stderr, "can't open serial port\n");
exit(1);
}
for (i=0; i<0x1000; i++)
{
fputc(sgetc(fserial), fout);
printf(".");
}
fclose(fout);
sclose(fserial);
return 0;
}
示例12: sprintf
VOID FIDOSDM::SetHWM (ULONG ulMsg)
{
int fd;
CHAR Temp[128];
struct dosdate_t d_date;
struct dostime_t d_time;
FIDOMSG Hdr;
sprintf (Temp, "%s1.msg", BasePath);
if ((fd = sopen (Temp, O_WRONLY|O_BINARY|O_CREAT|O_TRUNC, SH_DENYNO, S_IREAD|S_IWRITE)) != -1) {
memset (&Hdr, 0, sizeof (FIDOMSG));
strcpy (Hdr.From, "MsgBase");
strcpy (Hdr.To, "Nobody in particular");
strcpy (Hdr.Subject, "Re: Whatsa high water mark?");
_dos_getdate (&d_date);
_dos_gettime (&d_time);
sprintf (Hdr.Date, "%2d %3.3s %02d %02d:%02d:%02d", d_date.day, fidoMonths[d_date.month - 1], d_date.year % 100, d_time.hour, d_time.minute, d_time.second);
Hdr.Up = (USHORT)ulMsg;
Hdr.Attrib = MSGPRIVATE|MSGSENT|MSGREAD;
write (fd, &Hdr, sizeof (FIDOMSG));
strcpy (Temp, "\r\nThis message is used to store the high water mark\r\n");
write (fd, Temp, strlen (Temp) + 1);
close (fd);
}
}
示例13: Change
VOID TFileTag::Change (PSZ pszOldName, PSZ pszNewName)
{
int fd, i, Count, Changed;
ULONG Position;
FILETAGS *Buffer;
if ((fd = sopen (DatFile, O_RDWR|O_BINARY|O_CREAT, SH_DENYNO, S_IREAD|S_IWRITE)) != -1) {
if ((Buffer = (FILETAGS *)malloc (sizeof (FILETAGS) * FILETAGS_INDEX)) != NULL) {
do {
Changed = FALSE;
Position = tell (fd);
Count = read (fd, Buffer, sizeof (FILETAGS) * FILETAGS_INDEX) / sizeof (FILETAGS);
for (i = 0; i < Count; i++) {
if (Buffer[i].Free == FALSE && !stricmp (Buffer[i].Area, pszOldName)) {
strcpy (Buffer[i].Area, pszNewName);
Changed = TRUE;
}
}
if (Changed == TRUE) {
lseek (fd, Position, SEEK_SET);
write (fd, Buffer, sizeof (FILETAGS) * Count);
}
} while (Count == FILETAGS_INDEX);
free (Buffer);
}
close (fd);
}
}
示例14: hacklog
extern "C" BOOL DLLCALL hacklog(scfg_t* cfg, char* prot, char* user, char* text, char* host, SOCKADDR_IN* addr)
{
char hdr[1024];
char tstr[64];
char fname[MAX_PATH+1];
int file;
time32_t now=time32(NULL);
sprintf(fname,"%shack.log",cfg->logs_dir);
if((file=sopen(fname,O_CREAT|O_RDWR|O_BINARY|O_APPEND,SH_DENYWR,DEFFILEMODE))==-1)
return(FALSE);
sprintf(hdr,"SUSPECTED %s HACK ATTEMPT for user '%s' on %.24s\r\nUsing port %u at %s [%s]\r\nDetails: "
,prot
,user
,timestr(cfg,now,tstr)
,addr->sin_port
,host
,inet_ntoa(addr->sin_addr)
);
write(file,hdr,strlen(hdr));
write(file,text,strlen(text));
write(file,crlf,2);
write(file,crlf,2);
close(file);
return(TRUE);
}
示例15: initlog
void CLog::initlog()
{
logfile=sopen(g->v.log,O_WRONLY|O_APPEND|O_CREAT|O_TEXT,SH_DENYWR,S_IREAD|S_IWRITE);
if (logfile==-1)
throw errors("Unable to open log file "+g->v.log);
write(logfile,"\r\n",2);
}