本文整理汇总了C++中checkerr函数的典型用法代码示例。如果您正苦于以下问题:C++ checkerr函数的具体用法?C++ checkerr怎么用?C++ checkerr使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了checkerr函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: FC_FUNC_
int FC_FUNC_(oraclesim_getanahead, ORACLESIM_GETANAHEAD)
(OracleDbConnection **fdbconnid, int *net) {
OracleDbConnection *dbconnid = *fdbconnid;
int ostatid;
float oqs, oqp;
double olon, olat;
char oname[NAMELEN], onet[NAMELEN];
/* Preparo l'estrazione anagrafica */
checkerr(dbconnid, OCIStmtPrepare(dbconnid->stmthp, dbconnid->errhp,
(text *) anaquery,
(ub4) strlen(anaquery),
(ub4) OCI_NTV_SYNTAX, (ub4) OCI_DEFAULT));
checkerr(dbconnid, OCIBindByName(dbconnid->stmthp, &dbconnid->bnd1p,
dbconnid->errhp, (text *) ":net",
-1, (dvoid *) net,
(sword) sizeof(*net), SQLT_INT, (dvoid *) NULL,
(ub2 *) 0, (ub2 *) 0, (ub4) 0, (ub4 *) 0,
OCI_DEFAULT));
/* definisco l'uscita */
anadefine(dbconnid, &ostatid, &olon, &olat, &oqs, &oqp, oname, onet, NAMELEN);
return countrows(dbconnid);
}
开发者ID:ARPA-SIMC,项目名称:libsim,代码行数:27,代码来源:oraclesim.c
示例2: puts
char
*checksys(char *isvuln)
{
struct utsname name;
if(uname(&name) < 0) {
puts("uname failed");
}
isvuln = malloc(6);
if(!isvuln) {
perror("malloc");
_exit(EXIT_FAILURE);
}
if((name.sysname == NULL) || (strlen(name.sysname) < 1) || (strlen(name.sysname) > 5)) {
checkerr(isvuln);
}
memcpy(isvuln, name.sysname, strlen(name.sysname));
if(!isvuln) {
checkerr(isvuln);
}
return(isvuln);
}
开发者ID:0x24bin,项目名称:exploit-database,代码行数:26,代码来源:1092.c
示例3: db_getn
static int db_getn(int type, int keytype)
{
int n = 0;
char table[20];
char *sql = "select count(*) as n from %s where type=%d";
OraText row[4000];
OCIDefine *dnp = NULL;
strcpy(table, (type == TYPE_KILL)? "kill_key" : "monitor_key");
sprintf((char*)row, sql,table, keytype);
checkerr(OCIHandleAlloc((dvoid *)myenvhp, (dvoid **)&mystmthp,
OCI_HTYPE_STMT, (size_t)0, (dvoid **)0), myerrhp);
checkerr(OCIStmtPrepare(mystmthp, myerrhp, row, (ub4)strlen((char*)row),
(ub4)OCI_NTV_SYNTAX, (ub4)OCI_DEFAULT), myerrhp);
checkerr(OCIStmtExecute(mysvchp, mystmthp, myerrhp, (ub4)0, (ub4)0,
(CONST OCISnapshot *)0, (OCISnapshot *)0,
OCI_DEFAULT), myerrhp);
if ((status = OCIDefineByPos(mystmthp, &dnp, myerrhp, 1, &n, sizeof(n),
SQLT_INT, (dvoid *)0, 0, (ub2 *)0,
OCI_DEFAULT))) {
checkerr(status, myerrhp);
return -1;
}
if(OCIStmtFetch2(mystmthp, myerrhp, 1, OCI_FETCH_NEXT, 0,
OCI_DEFAULT) != OCI_NO_DATA) {
return n;
}
return 0;
}
开发者ID:hongwozai,项目名称:emms,代码行数:29,代码来源:db.c
示例4: main
int main(int argc, char ** argv) {
// TOOD use getprotoent?
int s = socket(PF_INET, SOCK_DGRAM, 0);
checkerr(s, "Opening socket");
struct sockaddr_in gateaddr;
bzero((char *)&gateaddr, sizeof(gateaddr));
gateaddr.sin_family = AF_INET;
// COMMAND LINE CFG
gateaddr.sin_port = htons(30012);
// COMMAND LINE CFG
gateaddr.sin_addr.s_addr = inet_addr("127.0.0.1");
int r = connect(s, (struct sockaddr *)&gateaddr, sizeof(gateaddr));
struct timeval tv;
tv.tv_sec = 3;
//setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, (struct timeval * )&tv, sizeof(tv));
checkerr(r, "Connecting");
const char * msg = "OPEN!";
r = send(s, msg, strlen(msg), 0);
checkerr(r, "Writing");
char buf[2048];
// can get EAGAIN, connection refused here.
ssize_t r2 = recv(s, buf, 2048, 0);
checkerr(r2, "Reading");
printf("Read: %d\n", r2);
}
开发者ID:ryanobjc,项目名称:noisegatepad,代码行数:34,代码来源:network.c
示例5: countrows
int countrows(OracleDbConnection *dbconnid) {
int nr;
sword status;
/* Lancio l'estrazione */
if ((status = OCIStmtExecute(dbconnid->svchp, dbconnid->stmthp, dbconnid->errhp,
(ub4) 0, (ub4) 0,
(CONST OCISnapshot *) NULL, (OCISnapshot *) NULL,
OCI_STMT_SCROLLABLE_READONLY)) != OCI_SUCCESS) {
if (status != OCI_NO_DATA) {
checkerr(dbconnid, status);
return -1;
}
}
/* Vado all'ultima riga e chiedo dove sono */
if ((status=OCIStmtFetch2(dbconnid->stmthp, dbconnid->errhp, (ub4) 1,
(ub2) OCI_FETCH_LAST, (sb4) 0,
(ub4) OCI_DEFAULT)) != OCI_SUCCESS) {
if (status != OCI_NO_DATA) {
checkerr(dbconnid, status);
return -1;
}
}
if (checkerr(dbconnid, OCIAttrGet(dbconnid->stmthp, OCI_HTYPE_STMT, &nr, 0,
OCI_ATTR_CURRENT_POSITION, dbconnid->errhp))
!= OCI_SUCCESS) return -1;
return nr;
}
开发者ID:ARPA-SIMC,项目名称:libsim,代码行数:28,代码来源:oraclesim.c
示例6: multirow_fetch_from_emp
/* This select empno, ename from myemp table or empview view
- can take different SQL texts
*/
void multirow_fetch_from_emp(OCISvcCtx *svchp, OCIStmt * stmthp, OCIError *errhp,
thdata *pthdata)
{
#define ARRAY_SIZE 3
OCIDefine *defhp1, *defhp2;
ub4 empid[ARRAY_SIZE];
sb2 empid_ind[ARRAY_SIZE];
char lname[ARRAY_SIZE][30];
sb2 lname_ind[ARRAY_SIZE];
ub2 lname_len[ARRAY_SIZE];
boolean done=FALSE;
ub4 rows = 0;
ub4 i =0;
sb4 status;
/* Define output buffers */
checkerr(errhp, OCIDefineByPos (stmthp, &defhp1, errhp, 1,
(void *) empid, (sb4) sizeof(empid[0]),
SQLT_INT, (void *) empid_ind,
(ub2 *) NULL, (ub2 *) NULL, OCI_DEFAULT));
checkerr(errhp, OCIDefineByPos (stmthp, &defhp2, errhp, 2,
(void *) lname[0], (sb4) sizeof(lname[0]),
SQLT_STR, (void *) lname_ind,
(ub2 *) lname_len, (ub2 *) NULL,
OCI_DEFAULT));
/* Fetch ARRAY_SIZE rows at a time */
while (!done)
{
status = OCIStmtFetch(stmthp, errhp, ARRAY_SIZE,
OCI_FETCH_NEXT, OCI_DEFAULT);
if ((status == OCI_SUCCESS) || (status == OCI_NO_DATA))
{
if (status == OCI_SUCCESS)
rows = ARRAY_SIZE; /* all rows asked for were obtained */
else if (status == OCI_NO_DATA)
{
/* might have gotten fewer rows */
checkerr(errhp, OCIAttrGet(stmthp, OCI_HTYPE_STMT,
&rows, (ub4 *) NULL,
OCI_ATTR_ROWS_FETCHED, errhp));
done = TRUE;
}
for (i=0; i < rows; i++)
{
if (verbose_flag)
printf ("empno=%d, ename=%s\n", empid[i], lname[i]);
}
}
else
{
checkerr (errhp, status);
done =TRUE;
}
}
}
开发者ID:Laukien,项目名称:test,代码行数:62,代码来源:stage4.c
示例7: main
int main(int argc, char *argv[])
{
OCIError *errhp = NULL;
printf("stage4: Demonstrating OCI statement caching \n");
/* parse command line options */
parse_options(argc, argv);
checkenv(envhp, OCIEnvCreate(&envhp, /* returned env handle */
OCI_THREADED, /* initialization modes */
NULL, NULL, NULL, NULL, /* callbacks, context */
(size_t) 0, /* extra memory size: optional */
(void **) NULL)); /* returned extra memory */
/* allocate error handle
* note: for OCIHandleAlloc(), we always check error on environment handle
*/
checkenv(envhp, OCIHandleAlloc(envhp, /* environment handle */
(void **) &errhp, /* returned err handle */
OCI_HTYPE_ERROR,/*type of handle to allocate*/
(size_t) 0, /* extra memory size: optional */
(void **) NULL)); /* returned extra memory */
create_session_pool(envhp, errhp, &poolName, &poolNameLen);
/* allocate auth handle
* note: for OCIHandleAlloc(), we check error on environment handle
*/
checkenv(envhp, OCIHandleAlloc(envhp,
(void **) &authp, OCI_HTYPE_AUTHINFO,
(size_t) 0, (void **) NULL));
/* setup username and password */
checkerr(errhp, OCIAttrSet(authp, OCI_HTYPE_AUTHINFO,
(void *) username, strlen((char *)username),
OCI_ATTR_USERNAME, errhp));
checkerr(errhp, OCIAttrSet(authp, OCI_HTYPE_AUTHINFO,
apppassword, strlen((char *) apppassword),
OCI_ATTR_PASSWORD, errhp));
spawn_threads(envhp, errhp, &thread_function);
/* Destroy the session pool */
OCISessionPoolDestroy(spoolhp, errhp, OCI_DEFAULT);
/* clean up */
if (authp)
OCIHandleFree(authp, OCI_HTYPE_AUTHINFO);
if (spoolhp)
OCIHandleFree(spoolhp, OCI_HTYPE_SPOOL);
if (errhp)
OCIHandleFree(errhp, OCI_HTYPE_ERROR);
if (envhp)
OCIHandleFree(envhp, OCI_HTYPE_ENV);
return 0;
}
开发者ID:Laukien,项目名称:test,代码行数:59,代码来源:stage4.c
示例8: BfileLobClose_proc
void BfileLobClose_proc(OCILobLocator *Bfile_loc, OCIEnv *envhp,
OCIError *errhp, OCISvcCtx *svchp, OCIStmt *stmthp)
{
printf ("----------- OCILobOpen Demo --------------\n");
checkerr(errhp, OCILobOpen(svchp, errhp, Bfile_loc,
(ub1) OCI_LOB_READONLY));
checkerr(errhp, OCILobClose(svchp, errhp, Bfile_loc));
}
开发者ID:RicardoVivas,项目名称:oracle-scripts,代码行数:9,代码来源:fclose_c.c
示例9: init
ocisession::ocisession(const char * connect_str, const int connect_str_len,
const char * user_name, const int user_name_len,
const char * password, const int password_len)
{
intf_ret r;
OCIAuthInfo *authp = NULL;
init();
r.handle = envhp;
// allocate error handle
checkenv(&r, OCIHandleAlloc((OCIEnv*)envhp, /* environment handle */
(void **) &_errhp, /* returned err handle */
OCI_HTYPE_ERROR, /* typ of handle to allocate */
(size_t) 0, /* optional extra memory size */
(void **) NULL)); /* returned extra memeory */
if(r.fn_ret != SUCCESS) {
REMOTE_LOG("failed OCISessionGet %s\n", r.gerrbuf);
throw r;
}
// allocate auth handle
checkenv(&r, OCIHandleAlloc((OCIEnv*)envhp,
(void**)&authp, OCI_HTYPE_AUTHINFO,
(size_t)0, (void **) NULL));
r.handle = _errhp;
// usrname and password
checkerr(&r, OCIAttrSet(authp, OCI_HTYPE_AUTHINFO,
(void*) user_name, user_name_len,
OCI_ATTR_USERNAME, (OCIError *)_errhp));
checkerr(&r, OCIAttrSet(authp, OCI_HTYPE_AUTHINFO,
(void*) password, password_len,
OCI_ATTR_PASSWORD, (OCIError *)_errhp));
/* get the database connection */
checkerr(&r, OCISessionGet((OCIEnv*)envhp, (OCIError *)_errhp,
(OCISvcCtx**)&_svchp, /* returned database connection */
authp, /* initialized authentication handle */
(OraText *) connect_str, connect_str_len,/* connect string */
NULL, 0, NULL, NULL, NULL, /* session tagging parameters: optional */
OCI_SESSGET_STMTCACHE)); /* modes */
if(r.fn_ret != SUCCESS) {
REMOTE_LOG("failed OCISessionGet %s\n", r.gerrbuf);
throw r;
}
(void) OCIHandleFree(authp, OCI_HTYPE_AUTHINFO);
REMOTE_LOG("got session %p\n", _svchp);
_sessions.push_back(this);
}
开发者ID:Zabrane,项目名称:erloci,代码行数:57,代码来源:ocisession.cpp
示例10: gettab
int gettab(OracleDbConnection *dbconnid, int *var, int nvar, int *net) {
sword status;
checkerr(dbconnid,
OCIStmtPrepare(dbconnid->stmthp, dbconnid->errhp,
(text *) tabquery,
(ub4) strlen(tabquery),
(ub4) OCI_NTV_SYNTAX, (ub4) OCI_DEFAULT));
/* checkerr(dbconnid,
OCIBindByName(dbconnid->stmthp, &dbconnid->bnd1p,
dbconnid->errhp, (text *) ":var",
-1, (dvoid *) var,
(sword) sizeof(*var), SQLT_INT, (dvoid *) NULL,
(ub2 *) 0, (ub2 *) 0, (ub4) 0, (ub4 *) 0,
OCI_DEFAULT)); */
checkerr(dbconnid,
OCIBindByName(dbconnid->stmthp, &dbconnid->bnd1p,
dbconnid->errhp, (text *) ":net",
-1, (dvoid *) net,
(sword) sizeof(*net), SQLT_INT, (dvoid *) NULL,
(ub2 *) 0, (ub2 *) 0, (ub4) 0, (ub4 *) 0,
OCI_DEFAULT));
checkerr(dbconnid,
OCIDefineByPos(dbconnid->stmthp, &dbconnid->defn1p,
dbconnid->errhp, 1,
(dvoid *) dbconnid->table, TABLEN, SQLT_STR,
(dvoid *) NULL,
(ub2 *) 0, (ub2 *) 0, OCI_DEFAULT));
/* Lancio l'estrazione */
if ((status = OCIStmtExecute(dbconnid->svchp, dbconnid->stmthp, dbconnid->errhp,
(ub4) 0, (ub4) 0,
(CONST OCISnapshot *) NULL, (OCISnapshot *) NULL,
OCI_STMT_SCROLLABLE_READONLY)) != OCI_SUCCESS) {
if (status != OCI_NO_DATA) {
checkerr(dbconnid, status);
return -1;
}
}
/* Prendo la prima riga di dati */
if ((status = OCIStmtFetch2(dbconnid->stmthp, dbconnid->errhp, (ub4) 1,
(ub2) OCI_FETCH_NEXT, (sb4) 0,
(ub4) OCI_DEFAULT)) != OCI_SUCCESS) {
if (status == OCI_NO_DATA) {
return -1;
} else {
checkerr(dbconnid, status);
return -1;
}
}
return 0;
}
开发者ID:ARPA-SIMC,项目名称:libsim,代码行数:56,代码来源:oraclesim.c
示例11: locatorIsEqual_proc
void locatorIsEqual_proc(OCILobLocator *Lob_loc1, OCILobLocator *Lob_loc2,
OCIEnv *envhp, OCIError *errhp, OCISvcCtx *svchp,
OCIStmt *stmthp)
{
boolean isEqual;
OCILobLocator *Lob_loc3;
printf ("----------- OCILobIsEqual Demo --------------\n");
/* Call OCI to see if the two locators are Equal: */
printf (" check if Lob1 and Lob2 are Equal.\n");
checkerr (errhp, OCILobIsEqual(envhp, Lob_loc1, Lob_loc2, &isEqual));
if (isEqual)
{
/* ... The LOB locators are Equal: */
printf(" Lob Locators are equal.\n");
}
else
{
/* ... The LOB locators are not Equal: */
printf(" Lob Locators are NOT Equal.\n");
}
(void)OCIDescriptorAlloc((void *) envhp, (void **) &Lob_loc3,
(ub4)OCI_DTYPE_LOB, (size_t) 0, (void **) 0);
/* Assign Lob_loc1 to Lob_loc2 thereby saving a copy of the value of the LOB
at this point in time: */
printf(" assign the src locator to dest locator\n");
checkerr (errhp, OCILobLocatorAssign(svchp, errhp, Lob_loc1, &Lob_loc3));
/* When you write some data to the LOB through Lob_loc1, Lob_loc2 will not
see the newly written data whereas Lob_loc1 will see the new data: */
/* Call OCI to see if the two locators are Equal: */
printf (" check if Lob1 and Lob3 are Equal.\n");
checkerr (errhp, OCILobIsEqual(envhp, Lob_loc1, Lob_loc3, &isEqual));
if (isEqual)
{
/* ... The LOB locators are Equal: */
printf(" Lob Locators are equal.\n");
}
else
{
/* ... The LOB locators are not Equal: */
printf(" Lob Locators are NOT Equal.\n");
}
OCIDescriptorFree((void *)Lob_loc3, (ub4)OCI_DTYPE_LOB);
return;
}
开发者ID:RicardoVivas,项目名称:oracle-scripts,代码行数:55,代码来源:lequal.c
示例12: OCIInitialize
// Begins an Oracle session.
void OraSession::startSession(const std::string& sConnectAsUser, const std::string& sConnectAsUserPwd,
const std::string& sConnectDBLink)
{
dvoid* tmp;
sword status;
status = OCIInitialize((ub4) OCI_THREADED | OCI_OBJECT, 0, 0, 0, 0);
status = OCIHandleAlloc((dvoid *)NULL, (dvoid **)&ociHandles.envhp, (ub4)OCI_HTYPE_ENV, 52, (dvoid **)&tmp);
status = OCIEnvInit(&ociHandles.envhp, (ub4)OCI_DEFAULT, 21, (dvoid **)&tmp);
status = OCIHandleAlloc((dvoid *)ociHandles.envhp, (dvoid **)&ociHandles.errhp, (ub4)OCI_HTYPE_ERROR, 52, (dvoid **)&tmp);
status = OCIHandleAlloc((dvoid *)ociHandles.envhp, (dvoid **)&ociHandles.srvhp, (ub4)OCI_HTYPE_SERVER, 52, (dvoid **)&tmp);
if(checkerr(&ociHandles, OCIServerAttach(ociHandles.srvhp, ociHandles.errhp, (text *)sConnectDBLink.c_str(),
(sb4)sConnectDBLink.length(), (ub4)OCI_DEFAULT)) != 0) {
std::cout << "OCIServerAttach failed." << std::endl << std::endl;
return;
}
status = OCIHandleAlloc((dvoid *)ociHandles.envhp, (dvoid **)&ociHandles.svchp,
(ub4)OCI_HTYPE_SVCCTX, 52, (dvoid **)&tmp);
/* set attribute server context in the service context */
status = OCIAttrSet((dvoid *) ociHandles.svchp, (ub4)OCI_HTYPE_SVCCTX, (dvoid *)ociHandles.srvhp, (ub4)0,
(ub4)OCI_ATTR_SERVER, (OCIError *)ociHandles.errhp);
/* allocate a user context handle */
status = OCIHandleAlloc((dvoid *)ociHandles.envhp, (dvoid **)&ociHandles.usrhp, (ub4)OCI_HTYPE_SESSION, (size_t)0,
(dvoid **)0);
status = OCIAttrSet((dvoid *)ociHandles.usrhp, (ub4)OCI_HTYPE_SESSION, (dvoid *)sConnectAsUser.c_str(),
(ub4)sConnectAsUser.length(), OCI_ATTR_USERNAME, ociHandles.errhp);
status = OCIAttrSet((dvoid *)ociHandles.usrhp, (ub4)OCI_HTYPE_SESSION, (dvoid *)sConnectAsUserPwd.c_str(),
(ub4)sConnectAsUserPwd.length(), OCI_ATTR_PASSWORD, ociHandles.errhp);
if(checkerr(&ociHandles, OCISessionBegin(ociHandles.svchp, ociHandles.errhp, ociHandles.usrhp, OCI_CRED_RDBMS, OCI_DEFAULT)) != 0) {
std::cout << "OCISessionBegin failed." << std::endl << std::endl;
return;
}
status = OCIAttrSet((dvoid *)ociHandles.svchp, (ub4)OCI_HTYPE_SVCCTX, (dvoid *)ociHandles.usrhp, (ub4)0, OCI_ATTR_SESSION,
ociHandles.errhp);
status = OCIHandleAlloc((dvoid *)ociHandles.envhp, (dvoid **)&ociHandles.stmthp, (ub4)OCI_HTYPE_STMT, 50, (dvoid **)&tmp);
connectedUser = sConnectAsUser;
}
开发者ID:Kangmo,项目名称:infinidb,代码行数:52,代码来源:orasession.cpp
示例13: checkerr
void
net·runtime_pollWait(PollDesc* pd, intgo mode, intgo err)
{
#line 112 "/tmp/bindist907131767/go/src/pkg/runtime/netpoll.goc"
runtime·lock(pd);
err = checkerr(pd, mode);
if(err)
goto ret;
netpollblock(pd, mode);
err = checkerr(pd, mode);
ret:
runtime·unlock(pd);
FLUSH(&err);
}
开发者ID:aigamo,项目名称:isucon3egg,代码行数:15,代码来源:znetpoll_linux_amd64.c
示例14: time
int COracleDB::oracle_rollback( void )
{
ORACLE_HANDLE* handle = ( ORACLE_HANDLE* ) _handle;
int status = 0;
int errcode = 0;
time_t t1 = time( NULL );
while ( ( status = OCITransRollback( handle->svchp, handle->errhp, 0 ) ) == OCI_STILL_EXECUTING ) {
if ( time( NULL ) - t1 > 60 ) {
// timeout
errcode = DB_ERR_TIMEOUT;
break;
}
my_usleep();
}
if ( errcode != DB_ERR_TIMEOUT && status ) {
errcode = checkerr( handle->errhp, status, _errinfo );
if ( errcode == 1012 || errcode == 12705 || errcode == 3113 || errcode == 3114 || errcode == 12541
|| errcode == 12547 ) {
errcode = DB_ERR_NOCONNECTION;
} else {
errcode = DB_ERR_FAILED;
}
}
return errcode;
}
开发者ID:caocf,项目名称:workspace-kepler,代码行数:32,代码来源:oracledb.cpp
示例15: GetHandles
int GetHandles(OCIExtProcContext* extProcCtx, Handles_t* handles)
{
/* store the ext-proc context in the handles struct */
handles->extProcCtx=extProcCtx;
/* Get OCI handles */
if (checkerr(handles, OCIExtProcGetEnv(extProcCtx, &handles->envhp, &handles->svchp, &handles->errhp)))
return -1;
/* get the user handle */
if (checkerr(handles, OCIAttrGet((dvoid*)handles->svchp, (ub4)OCI_HTYPE_SVCCTX, (dvoid*)&handles->usrhp, (ub4*)0,
(ub4)OCI_ATTR_SESSION, handles->errhp)))
return -1;
return 0;
}
开发者ID:Kangmo,项目名称:infinidb,代码行数:16,代码来源:checkerr.cpp
示例16: puffs_vnop_advlock
static int
puffs_vnop_advlock(struct vop_advlock_args *ap)
{
PUFFS_MSG_VARS(vn, advlock);
struct vnode *vp = ap->a_vp;
struct puffs_node *pn = VPTOPP(vp);
struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
int error;
if (!EXISTSOP(pmp, ADVLOCK))
return lf_advlock(ap, &pn->pn_lockf, vp->v_filesize);
PUFFS_MSG_ALLOC(vn, advlock);
(void)memcpy(&advlock_msg->pvnr_fl, ap->a_fl,
sizeof(advlock_msg->pvnr_fl));
advlock_msg->pvnr_id = ap->a_id;
advlock_msg->pvnr_op = ap->a_op;
advlock_msg->pvnr_flags = ap->a_flags;
puffs_msg_setinfo(park_advlock, PUFFSOP_VN,
PUFFS_VN_ADVLOCK, VPTOPNC(vp));
PUFFS_MSG_ENQUEUEWAIT2(pmp, park_advlock, vp->v_data, NULL, error);
error = checkerr(pmp, error, __func__);
PUFFS_MSG_RELEASE(advlock);
return error;
}
开发者ID:wan721,项目名称:DragonFlyBSD,代码行数:26,代码来源:puffs_vnops.c
示例17: puffs_vnop_open
static int
puffs_vnop_open(struct vop_open_args *ap)
{
PUFFS_MSG_VARS(vn, open);
struct vnode *vp = ap->a_vp;
struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
int mode = ap->a_mode;
int error;
DPRINTF(("puffs_open: vp %p, mode 0x%x\n", vp, mode));
if (vp->v_type == VREG && mode & FWRITE && !EXISTSOP(pmp, WRITE))
ERROUT(EROFS);
if (!EXISTSOP(pmp, OPEN))
ERROUT(0);
PUFFS_MSG_ALLOC(vn, open);
open_msg->pvnr_mode = mode;
puffs_credcvt(&open_msg->pvnr_cred, ap->a_cred);
puffs_msg_setinfo(park_open, PUFFSOP_VN,
PUFFS_VN_OPEN, VPTOPNC(vp));
PUFFS_MSG_ENQUEUEWAIT2(pmp, park_open, vp->v_data, NULL, error);
error = checkerr(pmp, error, __func__);
out:
DPRINTF(("puffs_open: returning %d\n", error));
PUFFS_MSG_RELEASE(open);
if (error)
return error;
return vop_stdopen(ap);
}
开发者ID:wan721,项目名称:DragonFlyBSD,代码行数:33,代码来源:puffs_vnops.c
示例18: netpollblock
static bool
netpollblock ( PollDesc *pd , int32 mode , bool waitio )
{
G **gpp , *old;
#line 328 "/home/14/ren/source/golang/go/src/pkg/runtime/netpoll.goc"
gpp = &pd->rg;
if ( mode == 'w' )
gpp = &pd->wg;
#line 333 "/home/14/ren/source/golang/go/src/pkg/runtime/netpoll.goc"
for ( ;; ) {
old = *gpp;
if ( old == READY ) {
*gpp = nil;
return true;
}
if ( old != nil )
runtime·throw ( "netpollblock: double wait" ) ;
if ( runtime·casp ( gpp , nil , WAIT ) )
break;
}
#line 348 "/home/14/ren/source/golang/go/src/pkg/runtime/netpoll.goc"
if ( waitio || checkerr ( pd , mode ) == 0 )
runtime·park ( ( bool ( * ) ( G* , void* ) ) blockcommit , gpp , "IO wait" ) ;
#line 351 "/home/14/ren/source/golang/go/src/pkg/runtime/netpoll.goc"
old = runtime·xchgp ( gpp , nil ) ;
if ( old > WAIT )
runtime·throw ( "netpollblock: corrupted state" ) ;
return old == READY;
}
开发者ID:rosrad,项目名称:go-rep,代码行数:29,代码来源:znetpoll_windows_386.c
示例19: regexec
bool Regex::matchp(const std::string& str_, std::string::size_type p, RegexSMatch& smatch, int eflags) const
{
if (expr.getPointer() == 0)
{
smatch.matchbuf[0].rm_so = 0;
return true;
}
smatch.str = str_;
int ret = regexec(expr.getPointer(), str_.c_str() + p,
sizeof(smatch.matchbuf) / sizeof(regmatch_t), smatch.matchbuf, eflags);
if (ret == REG_NOMATCH)
return false;
checkerr(ret);
if (p > 0)
{
for (unsigned n = 0; n < 10 && smatch.matchbuf[n].rm_so >= 0; ++n)
{
smatch.matchbuf[n].rm_so += p;
smatch.matchbuf[n].rm_eo += p;
}
}
return true;
}
开发者ID:AndreasWelchlin,项目名称:cxxtools,代码行数:28,代码来源:regex.cpp
示例20: netpollblock
static bool
netpollblock ( PollDesc *pd , int32 mode , bool waitio )
{
G **gpp , *old;
#line 328 "C:\Users\gopher\AppData\Local\Temp\1\makerelease745458658\go\src\pkg\runtime\netpoll.goc"
gpp = &pd->rg;
if ( mode == 'w' )
gpp = &pd->wg;
#line 333 "C:\Users\gopher\AppData\Local\Temp\1\makerelease745458658\go\src\pkg\runtime\netpoll.goc"
for ( ;; ) {
old = *gpp;
if ( old == READY ) {
*gpp = nil;
return true;
}
if ( old != nil )
runtime·throw ( "netpollblock: double wait" ) ;
if ( runtime·casp ( gpp , nil , WAIT ) )
break;
}
#line 348 "C:\Users\gopher\AppData\Local\Temp\1\makerelease745458658\go\src\pkg\runtime\netpoll.goc"
if ( waitio || checkerr ( pd , mode ) == 0 )
runtime·park ( ( bool ( * ) ( G* , void* ) ) blockcommit , gpp , "IO wait" ) ;
#line 351 "C:\Users\gopher\AppData\Local\Temp\1\makerelease745458658\go\src\pkg\runtime\netpoll.goc"
old = runtime·xchgp ( gpp , nil ) ;
if ( old > WAIT )
runtime·throw ( "netpollblock: corrupted state" ) ;
return old == READY;
}
开发者ID:Rasender,项目名称:Hello-ACS-560,代码行数:29,代码来源:znetpoll_windows_amd64.c
注:本文中的checkerr函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论