Sponsored Content
Full Discussion: "Invalid Argumemt" in msync.
Operating Systems Linux "Invalid Argumemt" in msync. Post 302383321 by darshan.ghumare on Tuesday 29th of December 2009 09:05:27 AM
Old 12-29-2009
"Invalid Argumemt" in msync.

Whne I try to execute following code then get an erro message that "Invalid Argumemt" in msync.

Code:
 
#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/errno.h>
#include <sys/time.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <pthread.h>
#include <linux/types.h>
int main()
{
       int fd;
       char data[20];
       __u8 *start_addr,*end_addr;
       int PageSize;
       if ( (PageSize = sysconf(_SC_PAGE_SIZE)) < 0) {
           perror("sysconf() Error=");
                   return -1;
       }
       printf("PageSize = %d\n",PageSize);
       if((fd = open("/dev/mem", O_RDWR | O_SYNC)) == -1)
       {
               printf("Error opening /dev/mem\n");
               return -1;
       }
       start_addr = mmap(0, PageSize, PROT_READ | PROT_WRITE, MAP_SHARED, fd,
                                                                               0);
       if(start_addr == MAP_FAILED)
       {
               printf("enc_status map failed %s\n", strerror(errno));
               return -1;
       }
       end_addr = start_addr + (4096 - 1);
       strcpy(data, "Test Msg");
       printf("\n%s:Writing NVRAM.......\n", __FUNCTION__);
       if(write(fd, data, strlen(data)) <= 0)
       {
               printf("%s: Not able to write on NVRAM. %s.\n", __FUNCTION__,
                               strerror(errno));
               return -1;
       }
       printf("\n%s:Synching NVRAM.......\n", __FUNCTION__);
       if(msync(start_addr, PageSize, MS_SYNC) < 0)
       {
               printf("%s: Not able to sync to NVRAM. %s.\n", __FUNCTION__,
                               strerror(errno));
               return -1;
       }
       printf("\n%s:reading NVRAM.......\n", __FUNCTION__);
       strcpy(data, "");
       if(read(fd, data, sizeof(data)) <= 0)
       {
               printf("%s: Not able to read on NVRAM. %s.\n", __FUNCTION__,
                               strerror(errno));
               return -1;
       }
       printf("%s: data  %s.\n", __FUNCTION__, data);
       return 0;
}

 

10 More Discussions You Might Find Interesting

1. Programming

error "Invalid argument" returned after call sched_setscheduler

the code is below and the was run on Solaris 9. ----------------------------- struct sched_param param; param.sched_priority = 99; if(sched_setscheduler(0, SCHED_RR, &param) == -1) { perror("setting priority"); exit(1); } ------------------------------- after the... (1 Reply)
Discussion started by: robin.zhu
1 Replies

2. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies

3. Shell Programming and Scripting

awk "Invalid char ' in expession" error

I have an HP PPM (ITG) application that is running an awk command in cygwin bash shell as part of ITG process moving SAP transports on a Windows 2003 server. The awk command checks the first two characters of a file containing return code that was retrieved from the SAP server. It is throwing the... (3 Replies)
Discussion started by: accsam1
3 Replies

4. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

5. UNIX for Advanced & Expert Users

Trace "free(): invalid next size (normal)" error on arm-linux board

Hi guys, i'm running a program on samsumg 6410 arm cpu board. it caused an "free(): invalid next size (normal)" fail. i try to use gdb for remote debugging: 1, start gdb server on board: gdbserver 192.168.1.20:1234 ./HostAP Process ./HostAP created; pid = 499 Listening on port... (8 Replies)
Discussion started by: ss1969
8 Replies

6. Shell Programming and Scripting

Perl "Invalid argument error"

Hi , we have a issue in server, we are running a perl script to connect our clients, but we are not able to connect, every time we are getting the "Invalid argument error" Even i checked all the necessary perl modules are i installed in this server, #create the listen socket my... (2 Replies)
Discussion started by: anishkumarv
2 Replies

7. Shell Programming and Scripting

exec perl in expect script yields "invalid command"

I'm trying to execute something like this: exec perl -i -pe 's/\015/\012/g' '${file}' in my expect script and I get: error "invalid command name \"perl\". however, if I run perl -i -pe 's/\015/\012/g' "/Users/Shared/menu-items.txt" directly in my terminal, it runs fine. I'm an... (4 Replies)
Discussion started by: dpouliot
4 Replies

8. AIX

Bison -pap_expr_yy invalid character:% unexpected "identifier" while running make for Apache2.4.3 64

The Follwing packages are installed on my AIX 6.1 box gcc-4.7.2-1 gcc-c++-4.7.2-1 gcc-cpp-4.7.2-1 gcc-gfortran-4.7.2-1 libgcc-4.7.2-1 libgomp-4.7.2-1 libstdc++-4.7.2-1 libstdc++-devel-4.7.2-1 gmp-5.0.5-1 libmpc-1.0.1-2 libmpc-devel-1.0.1-2 libmpcdec-1.2.6-1 libmpcdec-devel-1.2.6-1... (0 Replies)
Discussion started by: Ashish Gupta
0 Replies

9. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

10. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies
MSYNC(2)						      BSD System Calls Manual							  MSYNC(2)

NAME
msync -- synchronize a mapped region LIBRARY
Standard C Library (libc, -lc) SYNOPSIS
#include <sys/mman.h> int msync(void *addr, size_t len, int flags); DESCRIPTION
The msync() system call writes all pages with shared modifications in the specified region of the process's address space back to permanent storage, and, if requested, invalidates cached data mapped in the region. If len is 0, all modified pages within the region containing addr will be flushed; if len is non-zero, only modified pages containing addr and len succeeding locations will be flushed. Any required synchro- nization of memory caches will also take place at this time. Filesystem operations on a file that is mapped for shared modifications are unpredictable except after an msync(). The flags argument is formed by or'ing the following values MS_ASYNC Perform asynchronous writes. MS_SYNC Perform synchronous writes. MS_INVALIDATE Invalidate cached data after writing. RETURN VALUES
Upon successful completion, a value of 0 is returned. Otherwise, a value of -1 is returned and errno is set to indicate the error. ERRORS
The following errors may be reported: [EBUSY] The MS_INVALIDATE flag was specified and a portion of the specified region was locked with mlock(2). [EINVAL] The specified flags argument was invalid. [EINVAL] The addr parameter was not page aligned. [EINVAL] The addr parameter did not specify an address part of a mapped region. [EINVAL] The len parameter was negative. [EIO] An I/O error occurred while writing to the file system. [ENOMEM] Addresses in the specified region are outside the range allowed for the address space of the process, or specify one or more pages which are unmapped. SEE ALSO
mlock(2), mmap(2), munlock(2) STANDARDS
The msync() function conforms to IEEE Std 1003.1b-1993 (``POSIX.1'') HISTORY
The msync() function first appeared in 4.4BSD. It was modified to conform to IEEE Std 1003.1b-1993 (``POSIX.1'') in NetBSD 1.3. BSD
October 17, 2005 BSD
All times are GMT -4. The time now is 08:42 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy