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(3C)						   Standard C Library Functions 						 msync(3C)

NAME
msync - synchronize memory with physical storage SYNOPSIS
#include <sys/mman.h> int msync(void *addr, size_t len, int flags); DESCRIPTION
The msync() function writes all modified copies of pages over the range [addr, addr + len) to the underlying hardware, or invalidates any copies so that further references to the pages will be obtained by the system from their permanent storage locations. The permanent storage for a modified MAP_SHARED mapping is the file the page is mapped to; the permanent storage for a modified MAP_PRIVATE mapping is its swap area. The flags argument is a bit pattern built from the following values: MS_ASYNC perform asynchronous writes MS_SYNC perform synchronous writes MS_INVALIDATE invalidate mappings If flags is MS_ASYNC or MS_SYNC, the function synchronizes the file contents to match the current contents of the memory region. o All write references to the memory region made prior to the call are visible by subsequent read operations on the file. o All writes to the same portion of the file prior to the call may or may not be visible by read references to the memory region. o Unmodified pages in the specified range are not written to the underlying hardware. If flags is MS_ASYNC, the function may return immediately once all write operations are scheduled; if flags is MS_SYNC, the function does not return until all write operations are completed. If flags is MS_INVALIDATE, the function synchronizes the contents of the memory region to match the current file contents. o All writes to the mapped portion of the file made prior to the call are visible by subsequent read references to the mapped memory region. o All write references prior to the call, by any process, to memory regions mapped to the same portion of the file using MAP_SHARED, are visible by read references to the region. If msync() causes any write to the file, then the file's st_ctime and st_mtime fields are marked for update. RETURN VALUES
Upon successful completion, msync() returns 0; otherwise, it returns -1 and sets errno to indicate the error. ERRORS
The msync() function will fail if: EBUSY Some or all of the addresses in the range [addr, addr + len) are locked and MS_SYNC with the MS_INVALIDATE option is speci- fied. EAGAIN Some or all pages in the range [addr, addr + len) are locked for I/O. EINVAL The addr argument is not a multiple of the page size as returned by sysconf(3C). The flags argument is not some combination of MS_ASYNC and MS_INVALIDATE. EIO An I/O error occurred while reading from or writing to the file system. ENOMEM Addresses in the range [addr, addr + len) are outside the valid range for the address space of a process, or specify one or more pages that are not mapped. EPERM MS_INVALIDATE was specified and one or more of the pages is locked in memory. USAGE
The msync() function should be used by programs that require a memory object to be in a known state, for example in building transaction facilities. Normal system activity can cause pages to be written to disk. Therefore, there are no guarantees that msync() is the only control over when pages are or are not written to disk. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+ SEE ALSO
memcntl(2), mmap(2), sysconf(3C), attributes(5), standards(5) SunOS 5.10 24 Jul 2002 msync(3C)
All times are GMT -4. The time now is 01:00 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy