Esempio n. 1
0
int strcompare(char* str1,char* str2)
{
    int len1,len2,i,flag=0;
    len1=strlength(str1);
    len2=strlength(str2);
    if(len1!=len2)
    {
        flag=1;
    }
    else
    {
        for(i=0;i<len1;i++)
        {
            if(str1[i]!=str2[i])
            {
                flag=1;
                break;
            }
        }
    }
    return flag;



}
Esempio n. 2
0
char *joinpath(const char * path1, const char * path2_in) {
    if ( path1 == NULL ) {
        singularity_message(ERROR, "joinpath() called with NULL path1\n");
        ABORT(255);
    }
    if ( path2_in == NULL ) {
        singularity_message(ERROR, "joinpath() called with NULL path2\n");
        ABORT(255);
    }

    const char *path2 = path2_in;
    char *tmp_path1 = strdup(path1);
    int path1_len = strlength(tmp_path1, 4096);
    char *ret = NULL;

    if ( tmp_path1[path1_len - 1] == '/' ) {
        tmp_path1[path1_len - 1] = '\0';
    }
    if ( path2[0] == '/' ) {
        path2++;
    }

    size_t ret_pathlen = strlength(tmp_path1, PATH_MAX) + strlength(path2, PATH_MAX) + 2;
    ret = (char *) malloc(ret_pathlen);
    if (snprintf(ret, ret_pathlen, "%s/%s", tmp_path1, path2) >= ret_pathlen) { // Flawfinder: ignore
        singularity_message(ERROR, "Overly-long path name.\n");
        ABORT(255);
    }

    return(ret);
}
int stringcomp(char *chaineA, char* chaineB)   //Fonction qui compare les differentes chaine de caract
{
 int i=0;
 while (chaineA[i]!='\0'&&chaineB[i]!='\0')
 {
  if (chaineA[i] > chaineB[i])
  {
   return -1 ;             
  } 
  else if(chaineA[i]<chaineB[i])
  {
   return 1 ;   
  } 
  i++;   
 }  
 if(strlength(chaineA) == strlength(chaineB))
 {
  return 0 ;           
 }
 else if(strlength(chaineA) < strlength(chaineB))
 {
  return 1;
 }
 else 
 {
   return -1;
 }
}
Esempio n. 4
0
int checkRepeatExpression(char *expression)
{
	Rewind();

	char *first = nextToken();
	char *second = nextToken();
	char *third = nextToken();
	char *fourth = nextToken();
	char *fifth = nextToken();

	if (checkREPEAT(first, strlength(first))&&
		checkN(second, strlength(second))&&
		checkTIMES(third, strlength(third))&&
		checkCommandList(fourth, strlength(fourth))&&
		checkEND(fifth, strlength(fifth))) 
	{
		free(first);
		free(second);
		free(third);
		free(fourth);
		free(fifth);
		return 1;
	} else 
	{
		free(first);
		free(second);
		free(third);
		free(fourth);
		free(fifth);
		return 0;
	}

	return 1;
}
Esempio n. 5
0
char *joinpath(const char * path1, const char * path2) {
    char *ret;

    ret = (char *) malloc(strlength(path1, 2048) + strlength(path2, 2048) + 2);
    snprintf(ret, strlen(path1) + strlen(path2) + 2, "%s/%s", path1, path2); // Flawfinder: ignore

    return(ret);
}
Esempio n. 6
0
char *strjoin(char *str1, char *str2) {
    char *ret;
    int len = strlength(str1, 2048) + strlength(str2, 2048) + 1;

    ret = (char *) malloc(len);
    snprintf(ret, len, "%s%s", str1, str2); // Flawfinder: ignore

    return(ret);
}
Esempio n. 7
0
void main()
{
	char a[10]="hello";
	printf("%d\n",strlength(a));
	char b[strlength(a)];
	
	strcopy(b,a);
	printf("%s\n",b);
}
Esempio n. 8
0
int main() {
  char *str = "string";
  char *wrd = "word";
  char src[] = "source";
  char dest[] = "destination";
  char concat[ strlength(dest) + strlength(src) ];
  char empty[100];
  char a[] = "abc";
  char b[] = "ab";
  int i = 1;
  
  printf( "Testing strlength with string: %s\n", str );
  printf( "String length: %d \n", strlength( str ) );
  printf( "Testing strlength with string: %s\n", wrd );
  printf( "String length: %d\n", strlength( wrd ) );

  printf( "\n" );

  printf( "Testing strcopy with string: %s\n", src );
  printf( "Testing strcopy with string: %s\n", empty );
  strcopy( empty, src );
  printf("Empty string is now: %s\n", empty );

  
  printf( "\n" );
  
  printf( "Testing strconcat with string: %s\n", src );
  printf( "Testing strconcat with string: %s\n", dest );
  printf( "Appends the first: %d character(s) \n", i );
  strconcatn( concat, dest, src, i );
  printf( "Concatenated string: %s\n", concat );
  
  printf( "\n" );

  printf( "Testing strcomp with string: abc and ab \n" );
  printf( "%d\n", strcomp( a, b ) );
  printf( "Testing strcomp with string: abc and abc \n" );
  printf( "%d\n", strcomp( a, a ) );
  printf( "This answer is wrong! Still working on it." );

  printf( "\n" );

  printf( "Testing strchar with string: %s. Return place if found -1 if not found\n", src );
  printf( "Looking for s \n" );
  printf( "%d\n", strchar( src, 's' ) );
  printf( "Looking for 1 \n" );
  printf( "%d\n", strchar( src, '1' ) );
  printf( "Looking for e \n" );
  printf( "%d\n", strchar( src, 'e' ) );
  
  printf( "\n" );
  
  printf( "Testing strstring with strings %s and %s. Return 1 if found -1 if not found \n", a, b );
  printf( "%d This answer is wrong! I used my strcomp (broken method for now) in this method which is why it churned out the wrong answer. \n", strstring( a, b ) );
  
  return 0;
}
Esempio n. 9
0
int check_mounted(char *mountpoint) {
    int retval = -1;
    FILE *mounts;
    char *line = (char *)malloc(MAX_LINE_LEN);
    char *rootfs_dir = CONTAINER_FINALDIR;
    unsigned int mountpoint_len = strlength(mountpoint, PATH_MAX);
    char *real_mountpoint;

    singularity_message(DEBUG, "Opening /proc/mounts\n");
    if ( ( mounts = fopen("/proc/mounts", "r") ) == NULL ) { // Flawfinder: ignore
        singularity_message(ERROR, "Could not open /proc/mounts: %s\n", strerror(errno));
        ABORT(255);
    }

    if ( mountpoint[mountpoint_len-1] == '/' ) {
        singularity_message(DEBUG, "Removing trailing slash from string: %s\n", mountpoint);
        mountpoint[mountpoint_len-1] = '\0';
    }

    real_mountpoint = realpath(mountpoint, NULL); // Flawfinder: ignore
    if ( real_mountpoint == NULL ) {
        // mountpoint doesn't exists
        return(retval);
    }

    singularity_message(DEBUG, "Iterating through /proc/mounts\n");
    while ( fgets(line, MAX_LINE_LEN, mounts) != NULL ) {
        (void) strtok(strdup(line), " ");
        char *mount = strtok(NULL, " ");

        // Check to see if mountpoint is already mounted
        if ( strcmp(joinpath(rootfs_dir, real_mountpoint), mount) == 0 ) {
            singularity_message(DEBUG, "Mountpoint is already mounted: %s\n", mountpoint);
            retval = 1;
            break;
        }

        // Check to see if path is in container root
        if ( strncmp(rootfs_dir, mount, strlength(rootfs_dir, 1024)) != 0 ) {
            continue;
        }

        // Check to see if path is ot the container root
        if ( strcmp(mount, rootfs_dir) == 0 ) {
            continue;
        }
    }

    fclose(mounts);
    free(line);
    free(real_mountpoint);

    return(retval);
}
Esempio n. 10
0
char *strjoin(char *str1, char *str2) {
    char *ret;
    int len = strlength(str1, 2048) + strlength(str2, 2048) + 1;

    ret = (char *) malloc(len);
    if (snprintf(ret, len, "%s%s", str1, str2) >= len) { // Flawfinder: ignore
       singularity_message(ERROR, "Overly-long string encountered.\n");
       ABORT(255);
    }

    return(ret);
}
Esempio n. 11
0
int strcomp( char a[], char b[] ) {
  int c = 0;
  while ( a[c] != '\0' || b[c] == '\0' ) { 
    if ( a[c] == b[c] )
      if ( c == ( strlength( a ) - 1 ) && c == ( strlength( b ) - 1 ) )
	return 1;
      else 
	return -1;
    c++;
  }
  return -1;
}
Esempio n. 12
0
int strcompare(char* str1, char* str2) // return 1 if strings are the same and 0 otherwise
{
    int result=0;
    
    if (strlength(str1) != strlength(str2))
        return result;
    
    while (*str1 && (result = ((*str1) == (*str2)))) {
        str1++;
        str2++;
    }
    return result;
} // end of strcompare
Esempio n. 13
0
int findsub(char* substr, char* eldstr) {
    char* peldstr = malloc(5*sizeof(char));
    char* tempstr = malloc(5*sizeof(char));
    peldstr = eldstr;
    int lensub = strlength(substr);
    int leneld = strlength(eldstr);
    while (peldstr - eldstr + lensub <= leneld) {
        linecpy(peldstr++, tempstr);
        if (!linecmp(substr, _linecut(tempstr, lensub))) {
            return peldstr - eldstr;
        }
    }
    return 0;
}
Esempio n. 14
0
uint8 strEql(string str1,string str2){
	uint8 result = 0;
	uint16 strSize = strlength(str1);
	if(strSize==strlength(str2)){
		uint8 i=0;
		result = 1;
		for(i;i<strSize;i++){
			if(str1[i]!=str2[i]){
				result = 0;
				break;
			}
		}
	}
	return result;
}
Esempio n. 15
0
int strstring( char a[], char b[] ) {
  int i;
  int j;
  for (i = 0; i < strlength( a ); i++ ) {
    j = 0;
    char c[100];
    while ( j < strlength( b ) ) {
      c[j] = b[j];
      j++;
    }
    if ( strcomp( c, b ) == 1 )
      return 1;
  }
  return -1;
}
Esempio n. 16
0
File: string.c Progetto: cxleb/cx
uint8 strEql(char* ch1,char* ch2)                     
{
        uint8 result = 1;
        uint8 size = strlength(ch1);
        if(size != strlength(ch2)) result =0;
        else 
        {
        uint8 i = 0;
        for(i;i<=size;i++)
        {
                if(ch1[i] != ch2[i]) result = 0;
        }
        }
        return result;
}
Esempio n. 17
0
char* concat(char* a,char* b)
{
int i=0;int j=0;
char* c=(char*)malloc(strlength(a)+strlength(b)+1);
for(;i<strlength(a);i++)
{
c[i]=a[i];
}
for(;j<strlength(b);j++)
{
c[i]=b[j];
i++;
}
return c;
}
Esempio n. 18
0
 int verifprenom(char *prenom){ 
 	 
 	int i, lprenom; 
 	//Calcul de la longueur de la chaine 
 	lprenom = strlength(prenom); 
 		 
 	//Passage vers majuscule de la chaine (option) 
 	//lowtoupcase(prenom); 
 	 
 	//Si 1er caractère est un espace alors invalide 
 	if((int)prenom[0] == 32 || (int)prenom[i] == 45) { 
 		return 0; 
 	} 
 	 
 	//Vérification des caractères 
 	for(i=0;i<lprenom;++i){ 
 		 
 		 
 		if(((int)prenom[i] < 65 || (int)prenom[i] > 90) && (int)prenom[i] != 32 && (int)prenom[i] != 45 ){ 
 			return 0; 
 		} 
 	 
 	 
 	} 
 	return 1; 
 	 
 } 
Esempio n. 19
0
char* substr(char* string, size_t position, size_t length)
{
    size_t string_length = strlength(string);
    if(position >= string_length)
    {
        return NULL;
    }
    
    char* substring = calloc(string_length + 1, sizeof(char));
    if(!substring)
    {
        return NULL;
    }
    
    int i, j;
    for (i = position, j = 0; j < length; i++, j++) 
    {
        if(i >= string_length)
        {
            break;
        }
        
        substring[j] = string[i]; 
    }
    
    substring[j] = '\0';    
    return substring;
}
Esempio n. 20
0
 int verifdatenaiss(char *chaine) { 
   int i, j, m, a, result; 
    
    
   if(strlength(chaine) == 10 && chaine[2] == '/' && chaine[5] == '/') {				//Si longeur de chaine = 10 ET  
   																						//si les "/" sont bien places 
   		char jour[3] = {chaine[0], chaine[1], '\0' }; 
 		char mois[3] = {chaine[3], chaine[4], '\0' };									//Division de la date en differentes  
 		char annee[5] = {chaine[6], chaine[7], chaine[8], chaine[9], '\0' };			//variables char[] jours, mois, annees 
   
         j = nbchartoint(jour); 
         m = nbchartoint(mois);															//Conversion en int 
         a = nbchartoint(annee); 
          
          
 		if(j <= daysinmonth(m, a) && j >= 1){											//Si le jour du mois est valide (annee bisextile) 
 												 
     		if(a >= 1905 && a <=1996) {													//Si la date est posterieure au 31 décembre 1904 et  
     																					//anterieure au 1er janvier 1997 
     		 
 				return 1;																//Alors retourne 1 = valide 
 			}  
 		 
   		} 	  
 
     } 
    
 	return 0;																			//Dans tous les autres cas, retourne 0
 	
 } 
Esempio n. 21
0
int singularity_rootfs_init(char *source) {
    char *containername = basename(strdup(source));

    singularity_message(DEBUG, "Checking on container source type\n");

    if ( containername != NULL ) {
        setenv("SINGULARITY_CONTAINER", containername, 1);
    } else {
        setenv("SINGULARITY_CONTAINER", "unknown", 1);
    }

    singularity_message(DEBUG, "Figuring out where to mount Singularity container\n");

    mount_point = strdup(singularity_config_get_value(CONTAINER_DIR));
    singularity_message(VERBOSE3, "Set image mount path to: %s\n", mount_point);

    if ( is_file(source) == 0 ) {
        int len = strlength(source, PATH_MAX);
        if ( strcmp(&source[len - 5], ".sqsh") == 0 ) {
            module = ROOTFS_SQUASHFS;
            return(rootfs_squashfs_init(source, joinpath(mount_point, ROOTFS_SOURCE)));
        } else { // Assume it is a standard Singularity image
            module = ROOTFS_IMAGE;
            return(rootfs_image_init(source, joinpath(mount_point, ROOTFS_SOURCE)));
        }
    } else if ( is_dir(source) == 0 ) {
        module = ROOTFS_DIR;
        return(rootfs_dir_init(source, joinpath(mount_point, ROOTFS_SOURCE)));
    }

    singularity_message(ERROR, "Container not found: %s\n", source);
    ABORT(255);
    return(-1);
}
Esempio n. 22
0
void chomp(char *str) {
    if (!str) {return;}

    int len;
    int i;
    
    len = strlength(str, 4096);

    // Trim leading whitespace by shifting array.
    i = 0;
    while ( isspace(str[i]) ) {i++;}
    if (i) {
        len -= i;
        memmove(str, str+i, len);
        str[len] = '\0';
    }
    
    // Trim trailing whitespace and redefine NULL
    while ( str[len - 1] == ' ' ) {
        str[len - 1] = '\0';
        len--;
    }

    // If str starts with a new line, there is nothing here
    if ( str[0] == '\n' ) {
        str[0] = '\0';
    }

    if ( str[len - 1] == '\n' ) {
        str[len - 1] = '\0';
    }

}
Esempio n. 23
0
void printexpr(TOKEN tok, int col)     /* print an expression in prefix form */
  { TOKEN opnds; int nextcol, start, i;
    if (PRINTEXPRDEBUG != 0)
      { printf ("printexpr: col %d\n", col);
        dbugprinttok(tok);
      };
    if (tok->tokentype == OPERATOR)
      { printf ("(%s", opprint[tok->whichval]);
        nextcol = col + 2 + opsize[tok->whichval];
        opnds = tok->operands;
	start = 0;
	while (opnds != NULL)
	  { if (start == 0) 
	       printf(" ");
	       else { printf("\n");
		      for (i = 0; i < nextcol; i++) printf(" ");
		    }
	    printexpr(opnds, nextcol);
	    if ( opnds->tokentype == IDENTIFIERTOK && nextcol < 60 )
	       nextcol = nextcol + 1 + strlength(opnds->stringval);
	       else start = 1;
	    opnds = opnds->link;
	  }
        printf (")");
      }
      else printtok(tok);
  }
Esempio n. 24
0
int s_mkpath(char *dir, mode_t mode) {
    if (!dir) {
        return(-1);
    }

    if (strlength(dir, 2) == 1 && dir[0] == '/') {
        return(0);
    }

    if ( is_dir(dir) == 0 ) {
        // Directory already exists, stop...
        return(0);
    }

    if ( s_mkpath(dirname(strdupa(dir)), mode) < 0 ) {
        // Return if priors failed
        return(-1);
    }

    message(DEBUG, "Creating directory: %s\n", dir);
    if ( mkdir(dir, mode) < 0 ) {
        message(ERROR, "Could not create directory %s: %s\n", dir, strerror(errno));
        return(-1);
    }

    return(0);
}
Esempio n. 25
0
void strcopy(char *s1, char *s2){
int i = strlength(s2), j;

for (j = 0; j<=i; j++){
	s1[j] = s2[j];	
}
printf("%s\n", s1);
}
Esempio n. 26
0
int strcompare(char *s1, char *s2) {
	int n1 = strlength(s1), n2 = strlength(s2), i;
	int g, c = 0;
	if (n1<n2)
		g = n2;
	else if (n1>n2)
		g = n1;
	else
		g = n1;
	for (i = 0; i<g; i++) {
		if (s1[i] == s2[i])
			c++;
		else
			return (s1[i] - s2[i]);
	}
	if (c != 0)
		return 0;
}
Esempio n. 27
0
void strconcatn( char n[], char d[], char s[], int i ) {
  strcopy( n, d );
  int nplace = strlength( d );
  int splace = 0;
  while ( splace != i ) { 
    n[nplace] = s[splace];
    nplace++;
    splace++;
  }
  n[nplace] = '\0';
}
Esempio n. 28
0
int main() {
    char str[10];
    int len = 0;
    printf("╟ы╩ф╚ы╥╗╕Ў╫╓╖√┤ог║");
    fgets(str, 10, stdin);
    len = strlen(str);
    printf("╫╓╖√┤о│д╢╚╩╟г║%d\n", len);
    len = strlength(str);
    printf("╫╓╖√┤о│д╢╚╩╟г║%d\n", len);
    return 0;
}
Esempio n. 29
0
int _singularity_image_mount_squashfs_check(struct image_object *image) {
    char *image_name = strdup(image->name);
    int len = strlength(image_name, 1024);

    if ( strcmp(&image_name[len-5], ".sqsh") != 0 ) {
        singularity_message(DEBUG, "Image does not appear to be of type '.sqsh': %s\n", image->path);
        return(-1);
    }

    return(0);
}
Esempio n. 30
0
void stringcopy(char* source, char* destination){
	
	int i;
	
	for(i=0; i <= strlength(source); ++i){
		
		destination[i] = source[i];
				
	}
	
	
}