本文整理汇总了C++中dmtcp::string::size方法的典型用法代码示例。如果您正苦于以下问题:C++ string::size方法的具体用法?C++ string::size怎么用?C++ string::size使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类dmtcp::string
的用法示例。
在下文中一共展示了string::size方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: rem_trailing_slash
static void rem_trailing_slash(dmtcp::string &path)
{
size_t i = path.size() - 1;
while( (path[i] == ' ' || path[i] == '/' || path == "\\" ) && i>0 )
i--;
if( i+1 < path.size() )
path = path.substr(0,i+1);
}
示例2: isTorqueHomeFile
bool isTorqueHomeFile(dmtcp::string &path)
{
// check if file is in home directory
char *ptr;
dmtcp::string hpath = "";
if ((ptr = getenv("HOME"))) {
hpath = dmtcp::string() + ptr;
JTRACE("Home directory:")(hpath)(path);
}else{
JTRACE("Cannot determine user HOME directory!");
return false;
}
if( hpath.size() >= path.size() ){
JTRACE("Length of path is less than home dir");
return false;
}
if( path.substr(0,hpath.size()) != hpath ){
JTRACE("prefix of path is not home directory")(path)(hpath);
return false;
}
dmtcp::string suffix1 = ".OU", suffix2 = ".ER";
if( !( (path.substr(path.size() - suffix1.size()) == suffix1) ||
(path.substr(path.size() - suffix2.size()) == suffix2) ) ){
JTRACE("path has no .OU or .ER suffix")(path);
return false;
}
char jobid[256];
sprintf(jobid,"%lu",torque_jobid);
dmtcp::string spool_path = hpath + "/.pbs_spool/" + jobid;
dmtcp::string home_path = hpath + jobid;
if( path.substr(0,spool_path.size()) == spool_path ){
JTRACE("File is located in $HOME/.pbs_spool/. It is Torque/PBS stdio file")(path);
return true;
}
if( path.substr(0,home_path.size()) == home_path ){
JTRACE("File is located in $HOME/. It is Torque/PBS stdio file")(path);
return true;
}
return false;
}
示例3: clear_path
static void clear_path(dmtcp::string &path)
{
size_t i;
for(i=0;i<path.size();i++){
if( path[i] == '/' || path[i] == '\\' ){
size_t j = i+1;
while( (path[j] == '/' || path[j] == '\\') && j < path.size() ){
j++;
}
if( j != i+1 ){
path.erase(i+1,j-(i+1));
}
}
}
}
示例4: isTorqueFile
bool isTorqueFile(dmtcp::string relpath, dmtcp::string &path)
{
JTRACE("Start");
switch( rmgr_type ){
case Empty:
probeTorque();
if( rmgr_type != torque )
return false;
break;
case torque:
break;
default:
return false;
}
if( torque_home().size() == 0 )
return false;
dmtcp::string abspath = torque_home() + "/" + relpath;
JTRACE("Compare path with")(path)(abspath);
if( path.size() < abspath.size() )
return false;
if( path.substr(0,abspath.size()) == abspath )
return true;
return false;
}
示例5: isTorqueStderr
bool isTorqueStderr(dmtcp::string &path)
{
if( !isTorqueIOFile(path) )
return false;
dmtcp::string suffix = ".ER";
if( (path.substr(path.size() - suffix.size()) == suffix) ){
return true;
}
return false;
}
示例6: findLibTorque_maps
int findLibTorque_maps(dmtcp::string &libpath)
{
// /proc/self/maps looks like: "<start addr>-<end addr> <mode> <offset> <device> <inode> <libpath>
// we need to extract libpath
dmtcp::Util::ProcMapsArea area;
int ret = -1;
// we will search for first libpath and first libname
int fd = _real_open ( "/proc/self/maps", O_RDONLY);
if( fd < 0 ){
JTRACE("Cannot open /proc/self/maps file");
return -1;
}
while( dmtcp::Util::readProcMapsLine(fd, &area) ){
libpath = area.name;
JNOTE("Inspect new /proc/seft/maps line")(libpath);
if( libpath.size() == 0 ){
JNOTE("anonymous region, skip");
continue;
}
if( libpath.find("libtorque") != dmtcp::string::npos ){
// this is library path that contains libtorque. This is what we need
JTRACE("Torque PBS libpath")(libpath);
ret = 0;
break;
}else{
JNOTE("Not a libtorque region")(libpath);
}
}
_real_close(fd);
return ret;
}