As I said, strings in quotes already have a null terminator. The compiler adds them for you. So putting a \0 here is pointless, it already has one, it's just not being written to the file since strlen() doesn't count the NULL terminator as part of the string.
Which is fine, I think. You should be checking the length of the file, not just blindly reading memory. If you go beyond the end of the file in mmap-ed memory, that's either a segfault or a bus error -- a crash.
So stop using string functions already and just treat the_file like an array of characters.
Quote:
for(i=0;i<strlen(the_file);++i)
I repeat: strlen() only works for strings. the_file is not a string. use buf.st_size
Instead of using my syntax or yours, you're trying to use both. either use the_file[i], or *(the_file + i). Note the lack of * in one of the two.
Quote:
code tag means???
Tags that surround code to make your code readable instead of a mess. If you don't understand how they work, hit the 'quote' button for my post here, I've used lots of them. [ code ] stuff that is code [ /code ] without the extra spaces between [ and ] .
Hello
I am executing the following script
nawk 'NR == 1 || substr($0,63,5) ~ /H... / && \
_++ == 2 { fn && close(fn); fn = "part_" ++c; _ = 1 }
{ print > fn }' sample.dat
When i execute as it is it is executing fine. but when i execute the whole script as a single line like below
... (2 Replies)
Hi ,
I m getting an error after executing the script.
My script.
Script is used to find out the date on 8 different machines(mentioned in SERVERNAMES file).
I have added public key to avoid ssh password and ssh without password working fine.
#!/bin/sh
fn_VMFind()
{
Date=`ssh -t... (5 Replies)
Hi friends
NO errors, but when I try to execute the program it gets struck.
Can any one find it out.
#include<stdio.h>
#include<sys/types.h>
#include<sys/mman.h>
#include<stdlib.h>
#include<fcntl.h>
#include<sys/stat.h>
#include<unistd.h>
#include<signal.h>
#include<string.h>
... (0 Replies)
Hi,
I have 2 files temp1.sh and temp2.sh as follows:
===========
temp1.sh
===========
echo "session1"
sh temp2.sh
echo "exit session2 and enter session1"
=================================
=============
temp2.sh
=============
echo "session2"
sh
echo "exit session2"... (5 Replies)
greetings,
i'll try to keep this simple...
i have a script that sets up my environment and creates a command line variable to execute. when i execute the variable i get an error telling me it cannot open one of the files on the command line. the error prints a file name that is definitely... (7 Replies)
I have the following script test.sh owned by dwdev account and group dwdev, the permissions on the script are as follows.
-rw-r-x--- 1 dwdev dwdev 279 Sep 17 13:19 test.sh
Groups:
cat /etc/group | grep dwdev
dwdev:x:704:dwdev
dwgroup:x:725:dwdev
writers:x:726:dwdev
User:
cat /etc/passwd |... (3 Replies)
Hello Friends,
I have written a code for the unisex bathroom which makes a policy that when a woman is in the bathroom only other women may enter, but not men, and vice versa. This program consists of four functions which a user defines but these functions are not properly working while... (4 Replies)
Hi,
I wrote this script to test if the output for DIR1 and DIR2 comes out as I want :
#!/bin/bash
DAY=$(date +%d)
MONTH=$(date +%b)
YEAR=$(date +%Y)
DIR1=$($MONTH$YEAR"_Blast_BC01")
DIR2=$($MONTH$YEAR"_Blast_BC15")
echo $DIR1
echo $DIR2
This is the output I want for echo $DIR1 ... (12 Replies)
Discussion started by: anaigini45
12 Replies
LEARN ABOUT BSD
strncasecmp
STRING(3) Library Functions Manual STRING(3)NAME
strcat, strncat, strcmp, strncmp, strcasecmp, strncasecmp, strcpy, strncpy, strlen, index, rindex - string operations
SYNOPSIS
#include <strings.h>
char *strcat(s, append)
char *s, *append;
char *strncat(s, append, count)
char *s, *append;
int count;
strcmp(s1, s2)
char *s1, *s2;
strncmp(s1, s2, count)
char *s1, *s2;
int count;
strcasecmp(s1, s2)
char *s1, *s2;
strncasecmp(s1, s2, count)
char *s1, *s2;
int count;
char *strcpy(to, from)
char *to, *from;
char *strncpy(to, from, count)
char *to, *from;
int count;
strlen(s)
char *s;
char *index(s, c)
char *s, c;
char *rindex(s, c)
char *s, c;
DESCRIPTION
These functions operate on null-terminated strings. They do not check for overflow of any receiving string.
Strcat appends a copy of string append to the end of string s. Strncat copies at most count characters. Both return a pointer to the null-
terminated result.
Strcmp compares its arguments and returns an integer greater than, equal to, or less than 0, according as s1 is lexicographically greater
than, equal to, or less than s2. Strncmp makes the same comparison but looks at at most count characters. Strcasecmp and strncasecmp are
identical in function, but are case insensitive. The returned lexicographic difference reflects a conversion to lower-case.
Strcpy copies string from to to, stopping after the null character has been moved. Strncpy copies exactly count characters, appending
nulls if from is less than count characters in length; the target may not be null-terminated if the length of from is count or more. Both
return to.
Strlen returns the number of non-null characters in s.
Index (rindex) returns a pointer to the first (last) occurrence of character c in string s or zero if c does not occur in the string. Set-
ting c to NULL works.
4th Berkeley Distribution October 22, 1987 STRING(3)